diff --git a/Core uniswap/.gitignore b/Core uniswap/.gitignore
new file mode 100644
index 00000000..e8c12ff4
--- /dev/null
+++ b/Core uniswap/.gitignore
@@ -0,0 +1,17 @@
+node_modules
+.env
+
+# Hardhat files
+/cache
+/artifacts
+
+# TypeChain files
+/typechain
+/typechain-types
+
+# solidity-coverage files
+/coverage
+/coverage.json
+
+# Hardhat Ignition default folder for deployments against a local node
+ignition/deployments/chain-31337
diff --git a/Core uniswap/Frontend/.eslintrc.json b/Core uniswap/Frontend/.eslintrc.json
new file mode 100644
index 00000000..37224185
--- /dev/null
+++ b/Core uniswap/Frontend/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["next/core-web-vitals", "next/typescript"]
+}
diff --git a/Core uniswap/Frontend/.gitignore b/Core uniswap/Frontend/.gitignore
new file mode 100644
index 00000000..26b002aa
--- /dev/null
+++ b/Core uniswap/Frontend/.gitignore
@@ -0,0 +1,40 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.*
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/versions
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# env files (can opt-in for commiting if needed)
+.env*
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/Core uniswap/Frontend/README.md b/Core uniswap/Frontend/README.md
new file mode 100644
index 00000000..e215bc4c
--- /dev/null
+++ b/Core uniswap/Frontend/README.md
@@ -0,0 +1,36 @@
+This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
+
+## Getting Started
+
+First, run the development server:
+
+```bash
+npm run dev
+# or
+yarn dev
+# or
+pnpm dev
+# or
+bun dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
+
+## Learn More
+
+To learn more about Next.js, take a look at the following resources:
+
+- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
+- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
+
+You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
+
+## Deploy on Vercel
+
+The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
+
+Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
diff --git a/Core uniswap/Frontend/app/client.ts b/Core uniswap/Frontend/app/client.ts
new file mode 100644
index 00000000..2d44cecd
--- /dev/null
+++ b/Core uniswap/Frontend/app/client.ts
@@ -0,0 +1,6 @@
+// src/client.ts
+import { createThirdwebClient } from "thirdweb";
+
+export const client = createThirdwebClient({
+ clientId: process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID as string,
+});
diff --git a/Core uniswap/Frontend/app/components/ApproveButton.tsx b/Core uniswap/Frontend/app/components/ApproveButton.tsx
new file mode 100644
index 00000000..e41277bf
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/ApproveButton.tsx
@@ -0,0 +1,100 @@
+"use client";
+import { Button } from "@/components/ui/button";
+import { defineChain, getContract, prepareContractCall } from "thirdweb";
+import { client } from "../client";
+import { useSendTransaction } from "thirdweb/react";
+import { toast } from 'react-hot-toast';
+
+
+const ApproveButton = ({
+ addressOne,
+ setAddressOne,
+ amountOne,
+ setAmountOne,
+}: {addressOne: string, setAddressOne: (address: string) => void, amountOne: string, setAmountOne: (amount: string) => void}) => {
+
+
+ const chain = defineChain(1115);
+
+ const contract = getContract({
+ client,
+ address: addressOne,
+ chain: chain,
+ });
+
+ const { mutate: sendTransaction } = useSendTransaction();
+
+ const Approve = async (address: string, amount: bigint) => {
+ const approve = prepareContractCall({
+ contract,
+ method: "function approve(address to, uint256 amount)",
+ params: [address, amount],
+ });
+ return new Promise((resolve, reject) => {
+ sendTransaction(approve, {
+ onSuccess: () => resolve(true),
+ onError: (error) => reject(error),
+ });
+ });
+ };
+
+ return (
+ <>
+
+ >
+ );
+};
+
+export default ApproveButton;
diff --git a/Core uniswap/Frontend/app/components/Card.tsx b/Core uniswap/Frontend/app/components/Card.tsx
new file mode 100644
index 00000000..72fd37aa
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Card.tsx
@@ -0,0 +1,54 @@
+"use client";
+import { Button } from "@/components/ui/button";
+import { Card, CardContent} from "@/components/ui/card";
+import { RefreshCcw, Coins, BarChart3 } from "lucide-react";
+
+
+const Cardd = ({activeTab, setActiveTab}: {activeTab: string, setActiveTab: (tab: string) => void}) => {
+
+
+ return (
+ <>
+
+
+
+
+
+ >
+ );
+};
+
+export default Cardd;
diff --git a/Core uniswap/Frontend/app/components/ConnectButton.tsx b/Core uniswap/Frontend/app/components/ConnectButton.tsx
new file mode 100644
index 00000000..63dc0858
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/ConnectButton.tsx
@@ -0,0 +1,30 @@
+"use client";
+
+import { useState } from "react";
+import { Button } from "@/components/ui/button";
+import { ConnectButton, lightTheme } from "thirdweb/react";
+import { client } from "../client";
+
+const ConnectButtons = () => {
+ return (
+ <>
+
+
+ >
+ );
+};
+
+export default ConnectButtons;
diff --git a/Core uniswap/Frontend/app/components/Header.tsx b/Core uniswap/Frontend/app/components/Header.tsx
new file mode 100644
index 00000000..b1c16b76
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Header.tsx
@@ -0,0 +1,15 @@
+"use client";
+import ConnectButton from "./ConnectButton";
+
+const Header = () => {
+ return (
+ <>
+
+ >
+ );
+};
+
+export default Header;
diff --git a/Core uniswap/Frontend/app/components/Investments/InvestmentTab.tsx b/Core uniswap/Frontend/app/components/Investments/InvestmentTab.tsx
new file mode 100644
index 00000000..e69de29b
diff --git a/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx b/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx
new file mode 100644
index 00000000..5ae28041
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Liquidity/AddLiquidityButton.tsx
@@ -0,0 +1,128 @@
+"use client";
+import { Button } from "@/components/ui/button";
+import { defineChain, getContract, prepareContractCall } from "thirdweb";
+import { client } from "../../client";
+import { useSendTransaction } from "thirdweb/react";
+import { toast } from 'react-hot-toast';
+
+
+const AddLiquidityButton = ({
+ addressOne,
+ addressTwo,
+ amountOne,
+ amountTwo,
+ setAmountOne,
+ setAmountTwo,
+}: {
+ addressOne: string;
+ addressTwo: string;
+ amountOne: string;
+ amountTwo: string;
+ setAddressOne: (address: string) => void;
+ setAddressTwo: (address: string) => void;
+ setAmountOne: (amount: string) => void;
+ setAmountTwo: (amount: string) => void;
+}) => {
+ const routerAddress = "0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382";
+
+ const chain = defineChain(1115);
+
+ const contract = getContract({
+ client,
+ address: routerAddress,
+ chain: chain,
+ });
+
+ const { mutate: sendTransaction } = useSendTransaction();
+
+ const AddLiquidity = async (
+ addressOne: string,
+ addressTwo: string,
+ amountOne: bigint,
+ amountTwo: bigint,
+ minTokenA: bigint,
+ minTokenB: bigint
+ ) => {
+ const addLiquidity = prepareContractCall({
+ contract,
+ method:
+ "function addLiquidity(address tokenA, address tokenB, uint256 amountOfTokenADesired, uint256 amountOfTokenBDesired, uint256 minTokenA, uint256 minTokenB)",
+ params: [addressOne, addressTwo, amountOne, amountTwo, minTokenA, minTokenB],
+ });
+ return new Promise((resolve, reject) => {
+ sendTransaction(addLiquidity, {
+ onSuccess: () => resolve(true),
+ onError: (error) => reject(error),
+ });
+ });
+ };
+
+ return (
+ <>
+
+ >
+ );
+};
+
+export default AddLiquidityButton;
diff --git a/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx b/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx
new file mode 100644
index 00000000..e63e04ed
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Liquidity/LiquidityTab.tsx
@@ -0,0 +1,89 @@
+"use client";
+
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardDescription,
+} from "@/components/ui/card";
+import { Label } from "@/components/ui/label";
+import { Input } from "@/components/ui/input";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import SwapButton from "../Swap/SwapButton";
+import ApproveButton from "../ApproveButton";
+import AddLiquidityButton from "./AddLiquidityButton";
+
+const SwapTab = ({amountOne, amountTwo, setAmountOne, setAmountTwo, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, amountTwo: string, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => {
+ return (
+ <>
+
+
+ Provide Liquidity
+
+ Add liquidity to earn fees from trades
+
+
+
+
+
+
+
+ setAmountOne(e.target.value)}
+ />
+
+
+
+
+
+
+ setAmountTwo(e.target.value)}
+ />
+
+
+
+
+
+ {/* */}
+
+
+
+ >
+ );
+};
+
+export default SwapTab;
diff --git a/Core uniswap/Frontend/app/components/Mint/MintButton.tsx b/Core uniswap/Frontend/app/components/Mint/MintButton.tsx
new file mode 100644
index 00000000..01323c61
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Mint/MintButton.tsx
@@ -0,0 +1,97 @@
+"use client";
+import { Button } from "@/components/ui/button";
+import { getContract, prepareContractCall, defineChain } from "thirdweb";
+import { sepolia } from "thirdweb/chains";
+import { client } from "../../client";
+import { useSendTransaction } from "thirdweb/react";
+import { toast } from 'react-hot-toast';
+
+
+
+const MintButton = ({
+ addressOne,
+ addressTwo,
+ setAddressOne,
+ amountOne,
+ setAmountOne,
+}: {addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, amountOne: string, setAmountOne: (amount: string) => void}) => {
+
+ const chain = defineChain(1115);
+
+ const contract = getContract({
+ client,
+ address: addressTwo,
+ chain: chain,
+ });
+
+ const { mutate: sendTransaction } = useSendTransaction();
+
+ const Mint = async (address: string, amount: bigint) => {
+ const approve = prepareContractCall({
+ contract,
+ method: "function mint(address to, uint256 amount)",
+ params: [address, amount], // type safe params
+ });
+ return new Promise((resolve, reject) => {
+ sendTransaction(approve, {
+ onSuccess: () => resolve(true),
+ onError: (error) => reject(error),
+ });
+ });
+ };
+ return (
+ <>
+
+ >
+ );
+};
+
+export default MintButton;
diff --git a/Core uniswap/Frontend/app/components/Mint/MintTab.tsx b/Core uniswap/Frontend/app/components/Mint/MintTab.tsx
new file mode 100644
index 00000000..b6320711
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Mint/MintTab.tsx
@@ -0,0 +1,75 @@
+"use client";
+
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardDescription,
+} from "@/components/ui/card";
+import { Label } from "@/components/ui/label";
+import { Input } from "@/components/ui/input";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import MintButton from "./MintButton";
+
+const SwapTab = ({amountOne, setAmountOne, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, setAmountOne: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => {
+ return (
+ <>
+
+
+ Minting...
+
+ Provides Minting of Tokens
+
+
+
+
+
+
+
+ setAddressOne(e.target.value)}
+ />
+
+
+
+
+
+
+ setAmountOne(e.target.value)}
+ />
+
+
+
+
+
+
+ >
+ );
+};
+
+export default SwapTab;
diff --git a/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx b/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx
new file mode 100644
index 00000000..0b6b0ba0
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Swap/SwapButton.tsx
@@ -0,0 +1,97 @@
+"use client";
+import { Button } from "@/components/ui/button";
+import { toast } from 'react-hot-toast';
+import { useSendTransaction } from "thirdweb/react";
+import { client } from "../../client";
+import { defineChain, getContract, prepareContractCall } from "thirdweb";
+import { sepolia } from "thirdweb/chains";
+
+const SwapButton = ({addressOne, addressTwo, amountOne, amountTwo, setAmountOne, setAmountTwo}: {addressOne: string, addressTwo: string, amountOne: string, amountTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void}) => {
+
+ const chain = defineChain(1115);
+
+ const contract = getContract({
+ client,
+ address: "0x5Ac64F5DA22B25559C7D7522b4B2BB7e2012F382",
+ chain: chain,
+ });
+
+ const { mutate: sendTransaction } = useSendTransaction();
+
+ const SwapTokens = async (amountIn: bigint, amountOut: bigint, path: string[]) => {
+ const swap = prepareContractCall({
+ contract,
+ method: "function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] memory path)",
+ params: [amountIn, amountOut, path],
+ });
+ return new Promise((resolve, reject) => {
+ sendTransaction(swap, {
+ onSuccess: () => resolve(true),
+ onError: (error) => reject(error),
+ });
+ });
+ };
+
+
+ return (
+ <>
+
+ >
+ );
+};
+
+export default SwapButton;
diff --git a/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx b/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx
new file mode 100644
index 00000000..dcf24a68
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/Swap/SwapTab.tsx
@@ -0,0 +1,87 @@
+"use client";
+
+import {
+ Card,
+ CardContent,
+ CardHeader,
+ CardTitle,
+ CardDescription,
+} from "@/components/ui/card";
+import { Label } from "@/components/ui/label";
+import { Input } from "@/components/ui/input";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import SwapButton from "./SwapButton";
+import ApproveButton from "../ApproveButton";
+
+const SwapTab = ({amountOne, amountTwo, setAmountOne, setAmountTwo, addressOne, addressTwo, setAddressOne, setAddressTwo}: {amountOne: string, amountTwo: string, setAmountOne: (amount: string) => void, setAmountTwo: (amount: string) => void, addressOne: string, addressTwo: string, setAddressOne: (address: string) => void, setAddressTwo: (address: string) => void}) => {
+ return (
+ <>
+
+
+ Swap Tokens
+
+ Exchange one token for another at the best rates
+
+
+
+
+
+
+
+ setAmountOne(e.target.value)}
+ />
+
+
+
+
+
+
+ setAmountTwo(e.target.value)}
+ />
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default SwapTab;
diff --git a/Core uniswap/Frontend/app/components/footer.tsx b/Core uniswap/Frontend/app/components/footer.tsx
new file mode 100644
index 00000000..9f4113f5
--- /dev/null
+++ b/Core uniswap/Frontend/app/components/footer.tsx
@@ -0,0 +1,26 @@
+
+
+ "use client";
+ import { Button } from "@/components/ui/button";
+import { Settings } from "lucide-react";
+
+
+const Footer = () => {
+ return (
+ <>
+
+ >
+ );
+};
+
+export default Footer;
diff --git a/Core uniswap/Frontend/app/favicon.ico b/Core uniswap/Frontend/app/favicon.ico
new file mode 100644
index 00000000..718d6fea
Binary files /dev/null and b/Core uniswap/Frontend/app/favicon.ico differ
diff --git a/Core uniswap/Frontend/app/fonts/GeistMonoVF.woff b/Core uniswap/Frontend/app/fonts/GeistMonoVF.woff
new file mode 100644
index 00000000..f2ae185c
Binary files /dev/null and b/Core uniswap/Frontend/app/fonts/GeistMonoVF.woff differ
diff --git a/Core uniswap/Frontend/app/fonts/GeistVF.woff b/Core uniswap/Frontend/app/fonts/GeistVF.woff
new file mode 100644
index 00000000..1b62daac
Binary files /dev/null and b/Core uniswap/Frontend/app/fonts/GeistVF.woff differ
diff --git a/Core uniswap/Frontend/app/globals.css b/Core uniswap/Frontend/app/globals.css
new file mode 100644
index 00000000..942f8719
--- /dev/null
+++ b/Core uniswap/Frontend/app/globals.css
@@ -0,0 +1,72 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+@layer base {
+ :root {
+ --background: 0 0% 100%;
+ --foreground: 240 10% 3.9%;
+ --card: 0 0% 100%;
+ --card-foreground: 240 10% 3.9%;
+ --popover: 0 0% 100%;
+ --popover-foreground: 240 10% 3.9%;
+ --primary: 240 5.9% 10%;
+ --primary-foreground: 0 0% 98%;
+ --secondary: 240 4.8% 95.9%;
+ --secondary-foreground: 240 5.9% 10%;
+ --muted: 240 4.8% 95.9%;
+ --muted-foreground: 240 3.8% 46.1%;
+ --accent: 240 4.8% 95.9%;
+ --accent-foreground: 240 5.9% 10%;
+ --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 240 5.9% 90%;
+ --input: 240 5.9% 90%;
+ --ring: 240 10% 3.9%;
+ --chart-1: 12 76% 61%;
+ --chart-2: 173 58% 39%;
+ --chart-3: 197 37% 24%;
+ --chart-4: 43 74% 66%;
+ --chart-5: 27 87% 67%;
+ --radius: 0.5rem;
+ }
+ .dark {
+ --background: 240 10% 3.9%;
+ --foreground: 0 0% 98%;
+ --card: 240 10% 3.9%;
+ --card-foreground: 0 0% 98%;
+ --popover: 240 10% 3.9%;
+ --popover-foreground: 0 0% 98%;
+ --primary: 0 0% 98%;
+ --primary-foreground: 240 5.9% 10%;
+ --secondary: 240 3.7% 15.9%;
+ --secondary-foreground: 0 0% 98%;
+ --muted: 240 3.7% 15.9%;
+ --muted-foreground: 240 5% 64.9%;
+ --accent: 240 3.7% 15.9%;
+ --accent-foreground: 0 0% 98%;
+ --destructive: 0 62.8% 30.6%;
+ --destructive-foreground: 0 0% 98%;
+ --border: 240 3.7% 15.9%;
+ --input: 240 3.7% 15.9%;
+ --ring: 240 4.9% 83.9%;
+ --chart-1: 220 70% 50%;
+ --chart-2: 160 60% 45%;
+ --chart-3: 30 80% 55%;
+ --chart-4: 280 65% 60%;
+ --chart-5: 340 75% 55%;
+ }
+}
+
+@layer base {
+ * {
+ @apply border-border;
+ }
+ body {
+ @apply bg-background text-foreground;
+ }
+}
diff --git a/Core uniswap/Frontend/app/layout.tsx b/Core uniswap/Frontend/app/layout.tsx
new file mode 100644
index 00000000..383ed274
--- /dev/null
+++ b/Core uniswap/Frontend/app/layout.tsx
@@ -0,0 +1,41 @@
+import type { Metadata } from "next";
+import localFont from "next/font/local";
+import "./globals.css";
+import { ThirdwebProvider } from "thirdweb/react";
+import { Toaster } from 'react-hot-toast';
+
+
+const geistSans = localFont({
+ src: "./fonts/GeistVF.woff",
+ variable: "--font-geist-sans",
+ weight: "100 900",
+});
+const geistMono = localFont({
+ src: "./fonts/GeistMonoVF.woff",
+ variable: "--font-geist-mono",
+ weight: "100 900",
+});
+
+export const metadata: Metadata = {
+ title: "Create Next App",
+ description: "Generated by create next app",
+};
+
+export default function RootLayout({
+ children,
+}: Readonly<{
+ children: React.ReactNode;
+}>) {
+ return (
+
+
+
+ {children}
+
+
+
+
+ );
+}
diff --git a/Core uniswap/Frontend/app/page.tsx b/Core uniswap/Frontend/app/page.tsx
new file mode 100644
index 00000000..0737ef0a
--- /dev/null
+++ b/Core uniswap/Frontend/app/page.tsx
@@ -0,0 +1,178 @@
+"use client";
+
+import { useState } from "react";
+import { Button } from "@/components/ui/button";
+import { Input } from "@/components/ui/input";
+import { Label } from "@/components/ui/label";
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
+import {
+ Card,
+ CardContent,
+ CardDescription,
+ CardHeader,
+ CardTitle,
+} from "@/components/ui/card";
+import {
+ BarChart3,
+ CandlestickChart,
+ Coins,
+ LayoutDashboard,
+ RefreshCcw,
+ Wallet,
+} from "lucide-react";
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select";
+import { lightTheme, useSendTransaction } from "thirdweb/react";
+import { client } from "./client";
+import { defineChain, getContract, prepareContractCall } from "thirdweb";
+import Header from "./components/Header";
+import Footer from "./components/footer";
+import Cardd from "./components/Card";
+import SwapTab from "./components/Swap/SwapTab";
+import LiquidityTab from "./components/Liquidity/LiquidityTab";
+import MintTab from "./components/Mint/MintTab";
+
+export default function RefinedDEXInterface() {
+ const [activeTab, setActiveTab] = useState("swap");
+
+ const [amountOne, setAmountOne] = useState("");
+ const [amountTwo, setAmountTwo] = useState("");
+ const [addressOne, setAddressOne] = useState("");
+ const [addressTwo, setAddressTwo] = useState("");
+
+ return (
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Portfolio Value
+
+
+
+
+ $10,234.56
+
+ +2.5% from last month
+
+
+
+
+
+
+ 24h Change
+
+
+
+
+
+ +5.67%
+
+
+ +$580.23
+
+
+
+
+
+
+ Your Positions
+
+ Overview of your liquidity positions
+
+
+
+
+
+
+ E/U
+
+
+
ETH-USDC
+
+ $5,000
+
+
+
+
32.5 ETH
+
+ 2,500 USDC
+
+
+
+
+
+ D/U
+
+
+
DAI-USDC
+
+ $3,000
+
+
+
+
1,500 DAI
+
+ 1,500 USDC
+
+
+
+
+
+ E/D
+
+
+
ETH-DAI
+
+ $2,234.56
+
+
+
+
7.2 ETH
+
+ 1,117.28 DAI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Footer */}
+
+
+ );
+}
diff --git a/Core uniswap/Frontend/components.json b/Core uniswap/Frontend/components.json
new file mode 100644
index 00000000..a3128650
--- /dev/null
+++ b/Core uniswap/Frontend/components.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "new-york",
+ "rsc": true,
+ "tsx": true,
+ "tailwind": {
+ "config": "tailwind.config.ts",
+ "css": "app/globals.css",
+ "baseColor": "zinc",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils",
+ "ui": "@/components/ui",
+ "lib": "@/lib",
+ "hooks": "@/hooks"
+ },
+ "iconLibrary": "lucide"
+}
\ No newline at end of file
diff --git a/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx b/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx
new file mode 100644
index 00000000..232b866d
--- /dev/null
+++ b/Core uniswap/Frontend/components/enhanced-transaction-alert.tsx
@@ -0,0 +1,68 @@
+'use client'
+
+import { useState, useEffect } from 'react'
+import { CheckCircle2, X } from 'lucide-react'
+import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
+import { Button } from "@/components/ui/button"
+import { Progress } from "@/components/ui/progress"
+
+interface TransactionAlertProps {
+ message: string
+ onClose: () => void
+}
+
+export function EnhancedTransactionAlertComponent({ message, onClose }: TransactionAlertProps = { message: 'Transaction successful!', onClose: () => {} }) {
+ const [isVisible, setIsVisible] = useState(true)
+ const [progress, setProgress] = useState(0)
+
+ useEffect(() => {
+ const duration = 5000 // 5 seconds
+ const interval = 50 // Update every 50ms
+
+ const timer = setInterval(() => {
+ setProgress((oldProgress) => {
+ const newProgress = oldProgress + (100 / (duration / interval))
+ return newProgress >= 100 ? 100 : newProgress
+ })
+ }, interval)
+
+ const hideTimer = setTimeout(() => {
+ setIsVisible(false)
+ onClose()
+ }, duration)
+
+ return () => {
+ clearInterval(timer)
+ clearTimeout(hideTimer)
+ }
+ }, [onClose])
+
+ if (!isVisible) return null
+
+ return (
+
+
+
+
+
Success
+
+ {message}
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/Core uniswap/Frontend/components/refined-dex-interface.tsx b/Core uniswap/Frontend/components/refined-dex-interface.tsx
new file mode 100644
index 00000000..357df390
--- /dev/null
+++ b/Core uniswap/Frontend/components/refined-dex-interface.tsx
@@ -0,0 +1,252 @@
+'use client'
+
+import { useState } from 'react'
+import { Button } from "@/components/ui/button"
+import { Input } from "@/components/ui/input"
+import { Label } from "@/components/ui/label"
+import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
+import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"
+import { BarChart3, CandlestickChart, Coins, LayoutDashboard, RefreshCcw, Settings, Wallet } from "lucide-react"
+import {
+ Select,
+ SelectContent,
+ SelectItem,
+ SelectTrigger,
+ SelectValue,
+} from "@/components/ui/select"
+
+export function RefinedDexInterface() {
+ const [activeTab, setActiveTab] = useState('swap')
+
+ return (
+
+
+
+ DEX Platform
+
+
+
+
+ {/* Sidebar */}
+
+
+ {/* Main Content */}
+
+
+
+
+
+ Swap Tokens
+ Exchange one token for another at the best rates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provide Liquidity
+ Add liquidity to earn fees from trades
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Portfolio Value
+
+
+
+ $10,234.56
+ +2.5% from last month
+
+
+
+
+ 24h Change
+
+
+
+ +5.67%
+ +$580.23
+
+
+
+
+
+ Your Positions
+ Overview of your liquidity positions
+
+
+
+
+
+ E/U
+
+
+
+
32.5 ETH
+
2,500 USDC
+
+
+
+
+ D/U
+
+
+
+
1,500 DAI
+
1,500 USDC
+
+
+
+
+ E/D
+
+
+
+
7.2 ETH
+
1,117.28 DAI
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Footer */}
+
+
+ )
+}
\ No newline at end of file
diff --git a/Core uniswap/Frontend/components/ui/alert.tsx b/Core uniswap/Frontend/components/ui/alert.tsx
new file mode 100644
index 00000000..5afd41d1
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/alert.tsx
@@ -0,0 +1,59 @@
+import * as React from "react"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const alertVariants = cva(
+ "relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",
+ {
+ variants: {
+ variant: {
+ default: "bg-background text-foreground",
+ destructive:
+ "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ },
+ }
+)
+
+const Alert = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes & VariantProps
+>(({ className, variant, ...props }, ref) => (
+
+))
+Alert.displayName = "Alert"
+
+const AlertTitle = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+AlertTitle.displayName = "AlertTitle"
+
+const AlertDescription = React.forwardRef<
+ HTMLParagraphElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+AlertDescription.displayName = "AlertDescription"
+
+export { Alert, AlertTitle, AlertDescription }
diff --git a/Core uniswap/Frontend/components/ui/button.tsx b/Core uniswap/Frontend/components/ui/button.tsx
new file mode 100644
index 00000000..65d4fcd9
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/button.tsx
@@ -0,0 +1,57 @@
+import * as React from "react"
+import { Slot } from "@radix-ui/react-slot"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const buttonVariants = cva(
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
+ {
+ variants: {
+ variant: {
+ default:
+ "bg-primary text-primary-foreground shadow hover:bg-primary/90",
+ destructive:
+ "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
+ outline:
+ "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
+ secondary:
+ "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
+ ghost: "hover:bg-accent hover:text-accent-foreground",
+ link: "text-primary underline-offset-4 hover:underline",
+ },
+ size: {
+ default: "h-9 px-4 py-2",
+ sm: "h-8 rounded-md px-3 text-xs",
+ lg: "h-10 rounded-md px-8",
+ icon: "h-9 w-9",
+ },
+ },
+ defaultVariants: {
+ variant: "default",
+ size: "default",
+ },
+ }
+)
+
+export interface ButtonProps
+ extends React.ButtonHTMLAttributes,
+ VariantProps {
+ asChild?: boolean
+}
+
+const Button = React.forwardRef(
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
+ const Comp = asChild ? Slot : "button"
+ return (
+
+ )
+ }
+)
+Button.displayName = "Button"
+
+export { Button, buttonVariants }
diff --git a/Core uniswap/Frontend/components/ui/card.tsx b/Core uniswap/Frontend/components/ui/card.tsx
new file mode 100644
index 00000000..cabfbfc5
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/card.tsx
@@ -0,0 +1,76 @@
+import * as React from "react"
+
+import { cn } from "@/lib/utils"
+
+const Card = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+Card.displayName = "Card"
+
+const CardHeader = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+CardHeader.displayName = "CardHeader"
+
+const CardTitle = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+CardTitle.displayName = "CardTitle"
+
+const CardDescription = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+CardDescription.displayName = "CardDescription"
+
+const CardContent = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+CardContent.displayName = "CardContent"
+
+const CardFooter = React.forwardRef<
+ HTMLDivElement,
+ React.HTMLAttributes
+>(({ className, ...props }, ref) => (
+
+))
+CardFooter.displayName = "CardFooter"
+
+export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
diff --git a/Core uniswap/Frontend/components/ui/input.tsx b/Core uniswap/Frontend/components/ui/input.tsx
new file mode 100644
index 00000000..69b64fb2
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/input.tsx
@@ -0,0 +1,22 @@
+import * as React from "react"
+
+import { cn } from "@/lib/utils"
+
+const Input = React.forwardRef>(
+ ({ className, type, ...props }, ref) => {
+ return (
+
+ )
+ }
+)
+Input.displayName = "Input"
+
+export { Input }
diff --git a/Core uniswap/Frontend/components/ui/label.tsx b/Core uniswap/Frontend/components/ui/label.tsx
new file mode 100644
index 00000000..53418217
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/label.tsx
@@ -0,0 +1,26 @@
+"use client"
+
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const labelVariants = cva(
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
+)
+
+const Label = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, ...props }, ref) => (
+
+))
+Label.displayName = LabelPrimitive.Root.displayName
+
+export { Label }
diff --git a/Core uniswap/Frontend/components/ui/progress.tsx b/Core uniswap/Frontend/components/ui/progress.tsx
new file mode 100644
index 00000000..4fc3b473
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/progress.tsx
@@ -0,0 +1,28 @@
+"use client"
+
+import * as React from "react"
+import * as ProgressPrimitive from "@radix-ui/react-progress"
+
+import { cn } from "@/lib/utils"
+
+const Progress = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, value, ...props }, ref) => (
+
+
+
+))
+Progress.displayName = ProgressPrimitive.Root.displayName
+
+export { Progress }
diff --git a/Core uniswap/Frontend/components/ui/select.tsx b/Core uniswap/Frontend/components/ui/select.tsx
new file mode 100644
index 00000000..0cbf77d1
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/select.tsx
@@ -0,0 +1,159 @@
+"use client"
+
+import * as React from "react"
+import * as SelectPrimitive from "@radix-ui/react-select"
+import { Check, ChevronDown, ChevronUp } from "lucide-react"
+
+import { cn } from "@/lib/utils"
+
+const Select = SelectPrimitive.Root
+
+const SelectGroup = SelectPrimitive.Group
+
+const SelectValue = SelectPrimitive.Value
+
+const SelectTrigger = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+ span]:line-clamp-1",
+ className
+ )}
+ {...props}
+ >
+ {children}
+
+
+
+
+))
+SelectTrigger.displayName = SelectPrimitive.Trigger.displayName
+
+const SelectScrollUpButton = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+))
+SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName
+
+const SelectScrollDownButton = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+
+
+))
+SelectScrollDownButton.displayName =
+ SelectPrimitive.ScrollDownButton.displayName
+
+const SelectContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, position = "popper", ...props }, ref) => (
+
+
+
+
+ {children}
+
+
+
+
+))
+SelectContent.displayName = SelectPrimitive.Content.displayName
+
+const SelectLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+SelectLabel.displayName = SelectPrimitive.Label.displayName
+
+const SelectItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, children, ...props }, ref) => (
+
+
+
+
+
+
+ {children}
+
+))
+SelectItem.displayName = SelectPrimitive.Item.displayName
+
+const SelectSeparator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+SelectSeparator.displayName = SelectPrimitive.Separator.displayName
+
+export {
+ Select,
+ SelectGroup,
+ SelectValue,
+ SelectTrigger,
+ SelectContent,
+ SelectLabel,
+ SelectItem,
+ SelectSeparator,
+ SelectScrollUpButton,
+ SelectScrollDownButton,
+}
diff --git a/Core uniswap/Frontend/components/ui/tabs.tsx b/Core uniswap/Frontend/components/ui/tabs.tsx
new file mode 100644
index 00000000..0f4caebb
--- /dev/null
+++ b/Core uniswap/Frontend/components/ui/tabs.tsx
@@ -0,0 +1,55 @@
+"use client"
+
+import * as React from "react"
+import * as TabsPrimitive from "@radix-ui/react-tabs"
+
+import { cn } from "@/lib/utils"
+
+const Tabs = TabsPrimitive.Root
+
+const TabsList = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsList.displayName = TabsPrimitive.List.displayName
+
+const TabsTrigger = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsTrigger.displayName = TabsPrimitive.Trigger.displayName
+
+const TabsContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+TabsContent.displayName = TabsPrimitive.Content.displayName
+
+export { Tabs, TabsList, TabsTrigger, TabsContent }
diff --git a/Core uniswap/Frontend/lib/utils.ts b/Core uniswap/Frontend/lib/utils.ts
new file mode 100644
index 00000000..bd0c391d
--- /dev/null
+++ b/Core uniswap/Frontend/lib/utils.ts
@@ -0,0 +1,6 @@
+import { clsx, type ClassValue } from "clsx"
+import { twMerge } from "tailwind-merge"
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs))
+}
diff --git a/Core uniswap/Frontend/next.config.ts b/Core uniswap/Frontend/next.config.ts
new file mode 100644
index 00000000..e9ffa308
--- /dev/null
+++ b/Core uniswap/Frontend/next.config.ts
@@ -0,0 +1,7 @@
+import type { NextConfig } from "next";
+
+const nextConfig: NextConfig = {
+ /* config options here */
+};
+
+export default nextConfig;
diff --git a/Core uniswap/Frontend/package-lock.json b/Core uniswap/Frontend/package-lock.json
new file mode 100644
index 00000000..2f4e7a49
--- /dev/null
+++ b/Core uniswap/Frontend/package-lock.json
@@ -0,0 +1,11357 @@
+{
+ "name": "reusable",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "reusable",
+ "version": "0.1.0",
+ "dependencies": {
+ "@radix-ui/react-label": "^2.1.0",
+ "@radix-ui/react-progress": "^1.1.0",
+ "@radix-ui/react-select": "^2.1.2",
+ "@radix-ui/react-slot": "^1.1.0",
+ "@radix-ui/react-tabs": "^1.1.1",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.1.1",
+ "lucide-react": "^0.454.0",
+ "next": "15.0.2",
+ "react": "19.0.0-rc-02c0e824-20241028",
+ "react-dom": "19.0.0-rc-02c0e824-20241028",
+ "react-hot-toast": "^2.4.1",
+ "tailwind-merge": "^2.5.4",
+ "tailwindcss-animate": "^1.0.7",
+ "thirdweb": "^5.67.0"
+ },
+ "devDependencies": {
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "eslint": "^8",
+ "eslint-config-next": "15.0.2",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5"
+ }
+ },
+ "node_modules/@adraffy/ens-normalize": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz",
+ "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==",
+ "license": "MIT"
+ },
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz",
+ "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.26.2",
+ "@babel/types": "^7.26.0",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
+ "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.26.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
+ "license": "MIT",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.9",
+ "@babel/parser": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz",
+ "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.9",
+ "@babel/generator": "^7.25.9",
+ "@babel/parser": "^7.25.9",
+ "@babel/template": "^7.25.9",
+ "@babel/types": "^7.25.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@coinbase/wallet-sdk": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.2.0.tgz",
+ "integrity": "sha512-dkw3B3fNZ5T5Ei0A7iOTWK+aJEk2lnUQBOPYdXRo70tEXZQJ2dE4rmXx+ExWe9ObPYtgM9U0Q6GNWAWMpHKZtA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@noble/hashes": "^1.4.0",
+ "clsx": "^1.2.1",
+ "eventemitter3": "^5.0.1",
+ "preact": "^10.24.2",
+ "vitest": "^2.1.2"
+ }
+ },
+ "node_modules/@coinbase/wallet-sdk/node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@emnapi/runtime": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz",
+ "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@emotion/babel-plugin": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz",
+ "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/runtime": "^7.18.3",
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/serialize": "^1.2.0",
+ "babel-plugin-macros": "^3.1.0",
+ "convert-source-map": "^1.5.0",
+ "escape-string-regexp": "^4.0.0",
+ "find-root": "^1.1.0",
+ "source-map": "^0.5.7",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/cache": {
+ "version": "11.13.1",
+ "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz",
+ "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/sheet": "^1.4.0",
+ "@emotion/utils": "^1.4.0",
+ "@emotion/weak-memoize": "^0.4.0",
+ "stylis": "4.2.0"
+ }
+ },
+ "node_modules/@emotion/hash": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz",
+ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/is-prop-valid": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
+ "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/memoize": "^0.9.0"
+ }
+ },
+ "node_modules/@emotion/memoize": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz",
+ "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/react": {
+ "version": "11.13.3",
+ "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz",
+ "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.12.0",
+ "@emotion/cache": "^11.13.0",
+ "@emotion/serialize": "^1.3.1",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0",
+ "@emotion/utils": "^1.4.0",
+ "@emotion/weak-memoize": "^0.4.0",
+ "hoist-non-react-statics": "^3.3.1"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/serialize": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.2.tgz",
+ "integrity": "sha512-grVnMvVPK9yUVE6rkKfAJlYZgo0cu3l9iMC77V7DW6E1DUIrU68pSEXRmFZFOFB1QFo57TncmOcvcbMDWsL4yA==",
+ "license": "MIT",
+ "dependencies": {
+ "@emotion/hash": "^0.9.2",
+ "@emotion/memoize": "^0.9.0",
+ "@emotion/unitless": "^0.10.0",
+ "@emotion/utils": "^1.4.1",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@emotion/sheet": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz",
+ "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/styled": {
+ "version": "11.13.0",
+ "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz",
+ "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.18.3",
+ "@emotion/babel-plugin": "^11.12.0",
+ "@emotion/is-prop-valid": "^1.3.0",
+ "@emotion/serialize": "^1.3.0",
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0",
+ "@emotion/utils": "^1.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/react": "^11.0.0-rc.0",
+ "react": ">=16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@emotion/unitless": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz",
+ "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/use-insertion-effect-with-fallbacks": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz",
+ "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": ">=16.8.0"
+ }
+ },
+ "node_modules/@emotion/utils": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.1.tgz",
+ "integrity": "sha512-BymCXzCG3r72VKJxaYVwOXATqXIZ85cuvg0YOUDxMGNrKc1DJRZk8MgV5wyXRyEayIMd4FuXJIUgTBXvDNW5cA==",
+ "license": "MIT"
+ },
+ "node_modules/@emotion/weak-memoize": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz",
+ "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==",
+ "license": "MIT"
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
+ "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-provider": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
+ "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/networks": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/transactions": "^5.7.0",
+ "@ethersproject/web": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/abstract-signer": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
+ "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-provider": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/address": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
+ "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/rlp": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/base64": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
+ "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/bignumber": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
+ "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "bn.js": "^5.2.1"
+ }
+ },
+ "node_modules/@ethersproject/bytes": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
+ "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/constants": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
+ "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bignumber": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/hash": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
+ "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.7.0",
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/base64": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/keccak256": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
+ "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "js-sha3": "0.8.0"
+ }
+ },
+ "node_modules/@ethersproject/logger": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
+ "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/@ethersproject/networks": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
+ "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/properties": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
+ "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/rlp": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
+ "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/signing-key": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
+ "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "bn.js": "^5.2.1",
+ "elliptic": "6.5.4",
+ "hash.js": "1.1.7"
+ }
+ },
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "license": "MIT"
+ },
+ "node_modules/@ethersproject/strings": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
+ "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/transactions": {
+ "version": "5.7.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
+ "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/address": "^5.7.0",
+ "@ethersproject/bignumber": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/constants": "^5.7.0",
+ "@ethersproject/keccak256": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/rlp": "^5.7.0",
+ "@ethersproject/signing-key": "^5.7.0"
+ }
+ },
+ "node_modules/@ethersproject/web": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
+ "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@ethersproject/base64": "^5.7.0",
+ "@ethersproject/bytes": "^5.7.0",
+ "@ethersproject/logger": "^5.7.0",
+ "@ethersproject/properties": "^5.7.0",
+ "@ethersproject/strings": "^5.7.0"
+ }
+ },
+ "node_modules/@floating-ui/core": {
+ "version": "1.6.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz",
+ "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.8"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.6.12",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.12.tgz",
+ "integrity": "sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.6.0",
+ "@floating-ui/utils": "^0.2.8"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz",
+ "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz",
+ "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==",
+ "license": "MIT"
+ },
+ "node_modules/@google/model-viewer": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@google/model-viewer/-/model-viewer-2.1.1.tgz",
+ "integrity": "sha512-5umyLoD5vMxlSVQwtmUXeNCNWs9dzmWykGm1qrHe/pCYrj/1lyJIgJRw+IxoMNodGqtcHEtfDhdNjRDM9yo/TA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lit": "^2.2.3",
+ "three": "^0.146.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
+ "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==",
+ "deprecated": "Use @eslint/config-array instead",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.3",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@img/sharp-darwin-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz",
+ "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-darwin-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz",
+ "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-darwin-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz",
+ "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-darwin-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz",
+ "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz",
+ "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz",
+ "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-s390x": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz",
+ "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linux-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz",
+ "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-arm64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz",
+ "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-libvips-linuxmusl-x64": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz",
+ "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz",
+ "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm": "1.0.5"
+ }
+ },
+ "node_modules/@img/sharp-linux-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz",
+ "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-s390x": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz",
+ "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-s390x": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linux-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz",
+ "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linux-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-arm64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz",
+ "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-linuxmusl-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz",
+ "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4"
+ }
+ },
+ "node_modules/@img/sharp-wasm32": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz",
+ "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==",
+ "cpu": [
+ "wasm32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
+ "optional": true,
+ "dependencies": {
+ "@emnapi/runtime": "^1.2.0"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-ia32": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz",
+ "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@img/sharp-win32-x64": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz",
+ "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "Apache-2.0 AND LGPL-3.0-or-later",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@lit-labs/ssr-dom-shim": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz",
+ "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@lit/reactive-element": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz",
+ "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.0.0"
+ }
+ },
+ "node_modules/@motionone/animation": {
+ "version": "10.18.0",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.18.0.tgz",
+ "integrity": "sha512-9z2p5GFGCm0gBsZbi8rVMOAJCtw1WqBTIPw3ozk06gDvZInBPIsQcHgYogEJ4yuHJ+akuW8g1SEIOpTOvYs8hw==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/easing": "^10.18.0",
+ "@motionone/types": "^10.17.1",
+ "@motionone/utils": "^10.18.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/dom": {
+ "version": "10.18.0",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.18.0.tgz",
+ "integrity": "sha512-bKLP7E0eyO4B2UaHBBN55tnppwRnaE3KFfh3Ps9HhnAkar3Cb69kUCJY9as8LrccVYKgHA+JY5dOQqJLOPhF5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/animation": "^10.18.0",
+ "@motionone/generators": "^10.18.0",
+ "@motionone/types": "^10.17.1",
+ "@motionone/utils": "^10.18.0",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/easing": {
+ "version": "10.18.0",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.18.0.tgz",
+ "integrity": "sha512-VcjByo7XpdLS4o9T8t99JtgxkdMcNWD3yHU/n6CLEz3bkmKDRZyYQ/wmSf6daum8ZXqfUAgFeCZSpJZIMxaCzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/utils": "^10.18.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/generators": {
+ "version": "10.18.0",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.18.0.tgz",
+ "integrity": "sha512-+qfkC2DtkDj4tHPu+AFKVfR/C30O1vYdvsGYaR13W/1cczPrrcjdvYCj0VLFuRMN+lP1xvpNZHCRNM4fBzn1jg==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/types": "^10.17.1",
+ "@motionone/utils": "^10.18.0",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/svelte": {
+ "version": "10.16.4",
+ "resolved": "https://registry.npmjs.org/@motionone/svelte/-/svelte-10.16.4.tgz",
+ "integrity": "sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/dom": "^10.16.4",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/types": {
+ "version": "10.17.1",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.17.1.tgz",
+ "integrity": "sha512-KaC4kgiODDz8hswCrS0btrVrzyU2CSQKO7Ps90ibBVSQmjkrt2teqta6/sOG59v7+dPnKMAg13jyqtMKV2yJ7A==",
+ "license": "MIT"
+ },
+ "node_modules/@motionone/utils": {
+ "version": "10.18.0",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.18.0.tgz",
+ "integrity": "sha512-3XVF7sgyTSI2KWvTf6uLlBJ5iAgRgmvp3bpuOiQJvInd4nZ19ET8lX5unn30SlmRH7hXbBbH+Gxd0m0klJ3Xtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/types": "^10.17.1",
+ "hey-listen": "^1.0.8",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@motionone/vue": {
+ "version": "10.16.4",
+ "resolved": "https://registry.npmjs.org/@motionone/vue/-/vue-10.16.4.tgz",
+ "integrity": "sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==",
+ "deprecated": "Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/dom": "^10.16.4",
+ "tslib": "^2.3.1"
+ }
+ },
+ "node_modules/@next/env": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.2.tgz",
+ "integrity": "sha512-c0Zr0ModK5OX7D4ZV8Jt/wqoXtitLNPwUfG9zElCZztdaZyNVnN40rDXVZ/+FGuR4CcNV5AEfM6N8f+Ener7Dg==",
+ "license": "MIT"
+ },
+ "node_modules/@next/eslint-plugin-next": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.0.2.tgz",
+ "integrity": "sha512-R9Jc7T6Ge0txjmqpPwqD8vx6onQjynO9JT73ArCYiYPvSrwYXepH/UY/WdKDY8JPWJl72sAE4iGMHPeQ5xdEWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "3.3.1"
+ }
+ },
+ "node_modules/@next/swc-darwin-arm64": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.2.tgz",
+ "integrity": "sha512-GK+8w88z+AFlmt+ondytZo2xpwlfAR8U6CRwXancHImh6EdGfHMIrTSCcx5sOSBei00GyLVL0ioo1JLKTfprgg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-darwin-x64": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.2.tgz",
+ "integrity": "sha512-KUpBVxIbjzFiUZhiLIpJiBoelqzQtVZbdNNsehhUn36e2YzKHphnK8eTUW1s/4aPy5kH/UTid8IuVbaOpedhpw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-gnu": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.2.tgz",
+ "integrity": "sha512-9J7TPEcHNAZvwxXRzOtiUvwtTD+fmuY0l7RErf8Yyc7kMpE47MIQakl+3jecmkhOoIyi/Rp+ddq7j4wG6JDskQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-arm64-musl": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.2.tgz",
+ "integrity": "sha512-BjH4ZSzJIoTTZRh6rG+a/Ry4SW0HlizcPorqNBixBWc3wtQtj4Sn9FnRZe22QqrPnzoaW0ctvSz4FaH4eGKMww==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-gnu": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.2.tgz",
+ "integrity": "sha512-i3U2TcHgo26sIhcwX/Rshz6avM6nizrZPvrDVDY1bXcLH1ndjbO8zuC7RoHp0NSK7wjJMPYzm7NYL1ksSKFreA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-linux-x64-musl": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.2.tgz",
+ "integrity": "sha512-AMfZfSVOIR8fa+TXlAooByEF4OB00wqnms1sJ1v+iu8ivwvtPvnkwdzzFMpsK5jA2S9oNeeQ04egIWVb4QWmtQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-arm64-msvc": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.2.tgz",
+ "integrity": "sha512-JkXysDT0/hEY47O+Hvs8PbZAeiCQVxKfGtr4GUpNAhlG2E0Mkjibuo8ryGD29Qb5a3IOnKYNoZlh/MyKd2Nbww==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@next/swc-win32-x64-msvc": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.2.tgz",
+ "integrity": "sha512-foaUL0NqJY/dX0Pi/UcZm5zsmSk5MtP/gxx3xOPyREkMFN+CTjctPfu3QaqrQHinaKdPnMWPJDKt4VjDfTBe/Q==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/@noble/curves": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz",
+ "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "1.5.0"
+ },
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@noble/hashes": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz",
+ "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nolyfill/is-core-module": {
+ "version": "1.0.39",
+ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz",
+ "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.4.0"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz",
+ "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.0",
+ "@parcel/watcher-darwin-arm64": "2.5.0",
+ "@parcel/watcher-darwin-x64": "2.5.0",
+ "@parcel/watcher-freebsd-x64": "2.5.0",
+ "@parcel/watcher-linux-arm-glibc": "2.5.0",
+ "@parcel/watcher-linux-arm-musl": "2.5.0",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.0",
+ "@parcel/watcher-linux-arm64-musl": "2.5.0",
+ "@parcel/watcher-linux-x64-glibc": "2.5.0",
+ "@parcel/watcher-linux-x64-musl": "2.5.0",
+ "@parcel/watcher-win32-arm64": "2.5.0",
+ "@parcel/watcher-win32-ia32": "2.5.0",
+ "@parcel/watcher-win32-x64": "2.5.0"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz",
+ "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz",
+ "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz",
+ "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz",
+ "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz",
+ "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz",
+ "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz",
+ "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz",
+ "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz",
+ "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz",
+ "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-wasm": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.0.tgz",
+ "integrity": "sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==",
+ "bundleDependencies": [
+ "napi-wasm"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "napi-wasm": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz",
+ "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz",
+ "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz",
+ "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "license": "Apache-2.0",
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/@passwordless-id/webauthn": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/@passwordless-id/webauthn/-/webauthn-1.6.2.tgz",
+ "integrity": "sha512-52Cna/kaJ6iuYgTko+LuHCY5NUgoJTQ+iLWbvCHWiI0pT+zUeKz1+g22mWGlSi/JDrFGwZTKG/PL2YDaQGo0qQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/passwordless-id"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@radix-ui/number": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz",
+ "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==",
+ "license": "MIT"
+ },
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz",
+ "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==",
+ "license": "MIT"
+ },
+ "node_modules/@radix-ui/react-arrow": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz",
+ "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-collection": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz",
+ "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-slot": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
+ "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz",
+ "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz",
+ "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dialog": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz",
+ "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.1",
+ "@radix-ui/react-dismissable-layer": "1.1.1",
+ "@radix-ui/react-focus-guards": "1.1.1",
+ "@radix-ui/react-focus-scope": "1.1.0",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-portal": "1.1.2",
+ "@radix-ui/react-presence": "1.1.1",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.6.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-direction": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz",
+ "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dismissable-layer": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz",
+ "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-use-callback-ref": "1.1.0",
+ "@radix-ui/react-use-escape-keydown": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-guards": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz",
+ "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz",
+ "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-use-callback-ref": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-icons": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.1.tgz",
+ "integrity": "sha512-QvYompk0X+8Yjlo/Fv4McrzxohDdM5GgLHyQcPpcsPvlOSXCGFjdbuyGL5dzRbg0GpknAjQJJZzdiRK7iWVuFQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x || ^19.x"
+ }
+ },
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz",
+ "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-label": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz",
+ "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-popper": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz",
+ "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.0.0",
+ "@radix-ui/react-arrow": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-use-callback-ref": "1.1.0",
+ "@radix-ui/react-use-layout-effect": "1.1.0",
+ "@radix-ui/react-use-rect": "1.1.0",
+ "@radix-ui/react-use-size": "1.1.0",
+ "@radix-ui/rect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
+ "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-portal": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz",
+ "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-use-layout-effect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz",
+ "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-use-layout-effect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz",
+ "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-progress": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.0.tgz",
+ "integrity": "sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-context": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-progress/node_modules/@radix-ui/react-context": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
+ "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-roving-focus": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz",
+ "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-collection": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.0",
+ "@radix-ui/react-direction": "1.1.0",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-use-callback-ref": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz",
+ "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-select": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz",
+ "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/number": "1.1.0",
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-collection": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.1",
+ "@radix-ui/react-direction": "1.1.0",
+ "@radix-ui/react-dismissable-layer": "1.1.1",
+ "@radix-ui/react-focus-guards": "1.1.1",
+ "@radix-ui/react-focus-scope": "1.1.0",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-popper": "1.2.0",
+ "@radix-ui/react-portal": "1.1.2",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-use-callback-ref": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0",
+ "@radix-ui/react-use-layout-effect": "1.1.0",
+ "@radix-ui/react-use-previous": "1.1.0",
+ "@radix-ui/react-visually-hidden": "1.1.0",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.6.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz",
+ "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-tabs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz",
+ "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-context": "1.1.1",
+ "@radix-ui/react-direction": "1.1.0",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-presence": "1.1.1",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-roving-focus": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-tooltip": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.3.tgz",
+ "integrity": "sha512-Z4w1FIS0BqVFI2c1jZvb/uDVJijJjJ2ZMuPV81oVgTZ7g3BZxobplnMVvXtFWgtozdvYJ+MFWtwkM5S2HnAong==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.1",
+ "@radix-ui/react-dismissable-layer": "1.1.1",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-popper": "1.2.0",
+ "@radix-ui/react-portal": "1.1.2",
+ "@radix-ui/react-presence": "1.1.1",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0",
+ "@radix-ui/react-visually-hidden": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
+ "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz",
+ "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-callback-ref": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-escape-keydown": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz",
+ "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-callback-ref": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz",
+ "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-previous": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz",
+ "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-rect": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz",
+ "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/rect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-size": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz",
+ "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-visually-hidden": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz",
+ "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/rect": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
+ "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==",
+ "license": "MIT"
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.25.0.tgz",
+ "integrity": "sha512-CC/ZqFZwlAIbU1wUPisHyV/XRc5RydFrNLtgl3dGYskdwPZdt4HERtKm50a/+DtTlKeCq9IXFEWR+P6blwjqBA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.25.0.tgz",
+ "integrity": "sha512-/Y76tmLGUJqVBXXCfVS8Q8FJqYGhgH4wl4qTA24E9v/IJM0XvJCGQVSW1QZ4J+VURO9h8YCa28sTFacZXwK7Rg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.25.0.tgz",
+ "integrity": "sha512-YVT6L3UrKTlC0FpCZd0MGA7NVdp7YNaEqkENbWQ7AOVOqd/7VzyHpgIpc1mIaxRAo1ZsJRH45fq8j4N63I/vvg==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.25.0.tgz",
+ "integrity": "sha512-ZRL+gexs3+ZmmWmGKEU43Bdn67kWnMeWXLFhcVv5Un8FQcx38yulHBA7XR2+KQdYIOtD0yZDWBCudmfj6lQJoA==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.25.0.tgz",
+ "integrity": "sha512-xpEIXhiP27EAylEpreCozozsxWQ2TJbOLSivGfXhU4G1TBVEYtUPi2pOZBnvGXHyOdLAUUhPnJzH3ah5cqF01g==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.25.0.tgz",
+ "integrity": "sha512-sC5FsmZGlJv5dOcURrsnIK7ngc3Kirnx3as2XU9uER+zjfyqIjdcMVgzy4cOawhsssqzoAX19qmxgJ8a14Qrqw==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.25.0.tgz",
+ "integrity": "sha512-uD/dbLSs1BEPzg564TpRAQ/YvTnCds2XxyOndAO8nJhaQcqQGFgv/DAVko/ZHap3boCvxnzYMa3mTkV/B/3SWA==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.25.0.tgz",
+ "integrity": "sha512-ZVt/XkrDlQWegDWrwyC3l0OfAF7yeJUF4fq5RMS07YM72BlSfn2fQQ6lPyBNjt+YbczMguPiJoCfaQC2dnflpQ==",
+ "cpu": [
+ "arm"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.25.0.tgz",
+ "integrity": "sha512-qboZ+T0gHAW2kkSDPHxu7quaFaaBlynODXpBVnPxUgvWYaE84xgCKAPEYE+fSMd3Zv5PyFZR+L0tCdYCMAtG0A==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.25.0.tgz",
+ "integrity": "sha512-ndWTSEmAaKr88dBuogGH2NZaxe7u2rDoArsejNslugHZ+r44NfWiwjzizVS1nUOHo+n1Z6qV3X60rqE/HlISgw==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.25.0.tgz",
+ "integrity": "sha512-BVSQvVa2v5hKwJSy6X7W1fjDex6yZnNKy3Kx1JGimccHft6HV0THTwNtC2zawtNXKUu+S5CjXslilYdKBAadzA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.25.0.tgz",
+ "integrity": "sha512-G4hTREQrIdeV0PE2JruzI+vXdRnaK1pg64hemHq2v5fhv8C7WjVaeXc9P5i4Q5UC06d/L+zA0mszYIKl+wY8oA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.25.0.tgz",
+ "integrity": "sha512-9T/w0kQ+upxdkFL9zPVB6zy9vWW1deA3g8IauJxojN4bnz5FwSsUAD034KpXIVX5j5p/rn6XqumBMxfRkcHapQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.25.0.tgz",
+ "integrity": "sha512-ThcnU0EcMDn+J4B9LD++OgBYxZusuA7iemIIiz5yzEcFg04VZFzdFjuwPdlURmYPZw+fgVrFzj4CA64jSTG4Ig==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.25.0.tgz",
+ "integrity": "sha512-zx71aY2oQxGxAT1JShfhNG79PnjYhMC6voAjzpu/xmMjDnKNf6Nl/xv7YaB/9SIa9jDYf8RBPWEnjcdlhlv1rQ==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.25.0.tgz",
+ "integrity": "sha512-JT8tcjNocMs4CylWY/CxVLnv8e1lE7ff1fi6kbGocWwxDq9pj30IJ28Peb+Y8yiPNSF28oad42ApJB8oUkwGww==",
+ "cpu": [
+ "arm64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.25.0.tgz",
+ "integrity": "sha512-dRLjLsO3dNOfSN6tjyVlG+Msm4IiZnGkuZ7G5NmpzwF9oOc582FZG05+UdfTbz5Jd4buK/wMb6UeHFhG18+OEg==",
+ "cpu": [
+ "ia32"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.25.0.tgz",
+ "integrity": "sha512-/RqrIFtLB926frMhZD0a5oDa4eFIbyNEwLLloMTEjmqfwZWXywwVVOVmwTsuyhC9HKkVEZcOOi+KV4U9wmOdlg==",
+ "cpu": [
+ "x64"
+ ],
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz",
+ "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz",
+ "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@scure/base": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz",
+ "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip32": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz",
+ "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "~1.6.0",
+ "@noble/hashes": "~1.5.0",
+ "@scure/base": "~1.1.7"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@scure/bip39": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz",
+ "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "~1.5.0",
+ "@scure/base": "~1.1.8"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/@stablelib/aead": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
+ "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/binary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
+ "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/int": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/bytes": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
+ "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/chacha": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
+ "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/binary": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/chacha20poly1305": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
+ "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/aead": "^1.0.1",
+ "@stablelib/binary": "^1.0.1",
+ "@stablelib/chacha": "^1.0.1",
+ "@stablelib/constant-time": "^1.0.1",
+ "@stablelib/poly1305": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
+ "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/ed25519": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.3.tgz",
+ "integrity": "sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/random": "^1.0.2",
+ "@stablelib/sha512": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/hash": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
+ "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/hkdf": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz",
+ "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/hash": "^1.0.1",
+ "@stablelib/hmac": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/hmac": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz",
+ "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/constant-time": "^1.0.1",
+ "@stablelib/hash": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/int": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
+ "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/keyagreement": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
+ "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/bytes": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/poly1305": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
+ "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/constant-time": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/random": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.2.tgz",
+ "integrity": "sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/binary": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/sha256": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
+ "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/binary": "^1.0.1",
+ "@stablelib/hash": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/sha512": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
+ "integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/binary": "^1.0.1",
+ "@stablelib/hash": "^1.0.1",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@stablelib/wipe": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
+ "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==",
+ "license": "MIT"
+ },
+ "node_modules/@stablelib/x25519": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.3.tgz",
+ "integrity": "sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/keyagreement": "^1.0.1",
+ "@stablelib/random": "^1.0.2",
+ "@stablelib/wipe": "^1.0.1"
+ }
+ },
+ "node_modules/@swc/counter": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz",
+ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@swc/helpers": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz",
+ "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "node_modules/@tanstack/query-core": {
+ "version": "5.59.17",
+ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.17.tgz",
+ "integrity": "sha512-jWdDiif8kaqnRGHNXAa9CnudtxY5v9DUxXhodgqX2Rwzj+1UwStDHEbBd9IA5C7VYAaJ2s+BxFR6PUBs8ERorA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ }
+ },
+ "node_modules/@tanstack/react-query": {
+ "version": "5.59.19",
+ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.19.tgz",
+ "integrity": "sha512-xLRfyFyQOFcLltKCds0LijfC6/HQJrrTTnZB8ciyn74LIkVAm++vZJ6eUVG20RmJtdP8REdy7vSOYW4M3//XLA==",
+ "license": "MIT",
+ "dependencies": {
+ "@tanstack/query-core": "5.59.17"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/tannerlinsley"
+ },
+ "peerDependencies": {
+ "react": "^18 || ^19"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "20.17.6",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.6.tgz",
+ "integrity": "sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.2"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.13",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
+ "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.12",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
+ "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
+ "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/type-utils": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
+ "eslint": "^8.57.0 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
+ "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
+ "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
+ "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
+ "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
+ "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
+ "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
+ "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.13.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@vitest/expect": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.4.tgz",
+ "integrity": "sha512-DOETT0Oh1avie/D/o2sgMHGrzYUFFo3zqESB2Hn70z6QB1HrS2IQ9z5DfyTqU8sg4Bpu13zZe9V4+UTNQlUeQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/mocker": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.4.tgz",
+ "integrity": "sha512-Ky/O1Lc0QBbutJdW0rqLeFNbuLEyS+mIPiNdlVlp2/yhJ0SbyYqObS5IHdhferJud8MbbwMnexg4jordE5cCoQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.4",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.12"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/pretty-format": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.4.tgz",
+ "integrity": "sha512-L95zIAkEuTDbUX1IsjRl+vyBSLh3PwLLgKpghl37aCK9Jvw0iP+wKwIFhfjdUtA2myLgjrG6VU6JCFLv8q/3Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.4.tgz",
+ "integrity": "sha512-sKRautINI9XICAMl2bjxQM8VfCMTB0EbsBc/EDFA57V6UQevEKY/TOPOF5nzcvCALltiLfXWbq4MaAwWx/YxIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "2.1.4",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.4.tgz",
+ "integrity": "sha512-3Kab14fn/5QZRog5BPj6Rs8dc4B+mim27XaKWFWHWA87R56AKjHTGcBFKpvZKDzC4u5Wd0w/qKsUIio3KzWW4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "2.1.4",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.4.tgz",
+ "integrity": "sha512-4JOxa+UAizJgpZfaCPKK2smq9d8mmjZVPMt2kOsg/R8QkoRzydHH1qHxIYNvr1zlEaFj4SXiaaJWxq/LPLKaLg==",
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^3.0.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.4.tgz",
+ "integrity": "sha512-MXDnZn0Awl2S86PSNIim5PWXgIAx8CIkzu35mBdSApUip6RFOGXBCf3YFyeEu8n1IHk4bWD46DeYFu9mQlFIRg==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "2.1.4",
+ "loupe": "^3.1.2",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@walletconnect/core": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.2.tgz",
+ "integrity": "sha512-O9VUsFg78CbvIaxfQuZMsHcJ4a2Z16DRz/O4S+uOAcGKhH/i/ln8hp864Tb+xRvifWSzaZ6CeAVxk657F+pscA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/heartbeat": "1.2.2",
+ "@walletconnect/jsonrpc-provider": "1.0.14",
+ "@walletconnect/jsonrpc-types": "1.0.4",
+ "@walletconnect/jsonrpc-utils": "1.0.8",
+ "@walletconnect/jsonrpc-ws-connection": "1.0.14",
+ "@walletconnect/keyvaluestorage": "1.1.1",
+ "@walletconnect/logger": "2.1.2",
+ "@walletconnect/relay-api": "1.0.11",
+ "@walletconnect/relay-auth": "1.0.4",
+ "@walletconnect/safe-json": "1.0.2",
+ "@walletconnect/time": "1.0.2",
+ "@walletconnect/types": "2.17.2",
+ "@walletconnect/utils": "2.17.2",
+ "@walletconnect/window-getters": "1.0.1",
+ "events": "3.3.0",
+ "lodash.isequal": "4.5.0",
+ "uint8arrays": "3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@walletconnect/environment": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz",
+ "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/environment/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/ethereum-provider": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.17.2.tgz",
+ "integrity": "sha512-o4aL4KkUKT+n0iDwGzC6IY4bl+9n8bwOeT2KwifaVHsFw/irhtRPlsAQQH4ezOiPyk8cri1KN9dPk/YeU0pe6w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/jsonrpc-http-connection": "1.0.8",
+ "@walletconnect/jsonrpc-provider": "1.0.14",
+ "@walletconnect/jsonrpc-types": "1.0.4",
+ "@walletconnect/jsonrpc-utils": "1.0.8",
+ "@walletconnect/keyvaluestorage": "1.1.1",
+ "@walletconnect/modal": "2.7.0",
+ "@walletconnect/sign-client": "2.17.2",
+ "@walletconnect/types": "2.17.2",
+ "@walletconnect/universal-provider": "2.17.2",
+ "@walletconnect/utils": "2.17.2",
+ "events": "3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/events": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz",
+ "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==",
+ "license": "MIT",
+ "dependencies": {
+ "keyvaluestorage-interface": "^1.0.0",
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/events/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/heartbeat": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz",
+ "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/events": "^1.0.1",
+ "@walletconnect/time": "^1.0.2",
+ "events": "^3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/jsonrpc-http-connection": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz",
+ "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/jsonrpc-utils": "^1.0.6",
+ "@walletconnect/safe-json": "^1.0.1",
+ "cross-fetch": "^3.1.4",
+ "events": "^3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/jsonrpc-provider": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz",
+ "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/jsonrpc-utils": "^1.0.8",
+ "@walletconnect/safe-json": "^1.0.2",
+ "events": "^3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/jsonrpc-types": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz",
+ "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "events": "^3.3.0",
+ "keyvaluestorage-interface": "^1.0.0"
+ }
+ },
+ "node_modules/@walletconnect/jsonrpc-utils": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz",
+ "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/environment": "^1.0.1",
+ "@walletconnect/jsonrpc-types": "^1.0.3",
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/jsonrpc-ws-connection": {
+ "version": "1.0.14",
+ "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz",
+ "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/jsonrpc-utils": "^1.0.6",
+ "@walletconnect/safe-json": "^1.0.2",
+ "events": "^3.3.0",
+ "ws": "^7.5.1"
+ }
+ },
+ "node_modules/@walletconnect/keyvaluestorage": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz",
+ "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/safe-json": "^1.0.1",
+ "idb-keyval": "^6.2.1",
+ "unstorage": "^1.9.0"
+ },
+ "peerDependencies": {
+ "@react-native-async-storage/async-storage": "1.x"
+ },
+ "peerDependenciesMeta": {
+ "@react-native-async-storage/async-storage": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@walletconnect/logger": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz",
+ "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/safe-json": "^1.0.2",
+ "pino": "7.11.0"
+ }
+ },
+ "node_modules/@walletconnect/modal": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/@walletconnect/modal/-/modal-2.7.0.tgz",
+ "integrity": "sha512-RQVt58oJ+rwqnPcIvRFeMGKuXb9qkgSmwz4noF8JZGUym3gUAzVs+uW2NQ1Owm9XOJAV+sANrtJ+VoVq1ftElw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/modal-core": "2.7.0",
+ "@walletconnect/modal-ui": "2.7.0"
+ }
+ },
+ "node_modules/@walletconnect/modal-core": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/@walletconnect/modal-core/-/modal-core-2.7.0.tgz",
+ "integrity": "sha512-oyMIfdlNdpyKF2kTJowTixZSo0PGlCJRdssUN/EZdA6H6v03hZnf09JnwpljZNfir2M65Dvjm/15nGrDQnlxSA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "valtio": "1.11.2"
+ }
+ },
+ "node_modules/@walletconnect/modal-ui": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/@walletconnect/modal-ui/-/modal-ui-2.7.0.tgz",
+ "integrity": "sha512-gERYvU7D7K1ANCN/8vUgsE0d2hnRemfAFZ2novm9aZBg7TEd/4EgB+AqbJ+1dc7GhOL6dazckVq78TgccHb7mQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/modal-core": "2.7.0",
+ "lit": "2.8.0",
+ "motion": "10.16.2",
+ "qrcode": "1.5.3"
+ }
+ },
+ "node_modules/@walletconnect/relay-api": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz",
+ "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/jsonrpc-types": "^1.0.2"
+ }
+ },
+ "node_modules/@walletconnect/relay-auth": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz",
+ "integrity": "sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@stablelib/ed25519": "^1.0.2",
+ "@stablelib/random": "^1.0.1",
+ "@walletconnect/safe-json": "^1.0.1",
+ "@walletconnect/time": "^1.0.2",
+ "tslib": "1.14.1",
+ "uint8arrays": "^3.0.0"
+ }
+ },
+ "node_modules/@walletconnect/relay-auth/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/safe-json": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz",
+ "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/safe-json/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/sign-client": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.2.tgz",
+ "integrity": "sha512-/wigdCIQjlBXSWY43Id0IPvZ5biq4HiiQZti8Ljvx408UYjmqcxcBitbj2UJXMYkid7704JWAB2mw32I1HgshQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/core": "2.17.2",
+ "@walletconnect/events": "1.0.1",
+ "@walletconnect/heartbeat": "1.2.2",
+ "@walletconnect/jsonrpc-utils": "1.0.8",
+ "@walletconnect/logger": "2.1.2",
+ "@walletconnect/time": "1.0.2",
+ "@walletconnect/types": "2.17.2",
+ "@walletconnect/utils": "2.17.2",
+ "events": "3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/time": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz",
+ "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/time/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/types": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.2.tgz",
+ "integrity": "sha512-j/+0WuO00lR8ntu7b1+MKe/r59hNwYLFzW0tTmozzhfAlDL+dYwWasDBNq4AH8NbVd7vlPCQWmncH7/6FVtOfQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/events": "1.0.1",
+ "@walletconnect/heartbeat": "1.2.2",
+ "@walletconnect/jsonrpc-types": "1.0.4",
+ "@walletconnect/keyvaluestorage": "1.1.1",
+ "@walletconnect/logger": "2.1.2",
+ "events": "3.3.0"
+ }
+ },
+ "node_modules/@walletconnect/universal-provider": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.17.2.tgz",
+ "integrity": "sha512-yIWDhBODRa9J349d/i1sObzon0vy4n+7R3MvGQQYaU1EVrV+WfoGSRsu8U7rYsL067/MAUu9t/QrpPblaSbz7g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@walletconnect/events": "1.0.1",
+ "@walletconnect/jsonrpc-http-connection": "1.0.8",
+ "@walletconnect/jsonrpc-provider": "1.0.14",
+ "@walletconnect/jsonrpc-types": "1.0.4",
+ "@walletconnect/jsonrpc-utils": "1.0.8",
+ "@walletconnect/keyvaluestorage": "1.1.1",
+ "@walletconnect/logger": "2.1.2",
+ "@walletconnect/sign-client": "2.17.2",
+ "@walletconnect/types": "2.17.2",
+ "@walletconnect/utils": "2.17.2",
+ "events": "3.3.0",
+ "lodash": "4.17.21"
+ }
+ },
+ "node_modules/@walletconnect/utils": {
+ "version": "2.17.2",
+ "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.2.tgz",
+ "integrity": "sha512-T7eLRiuw96fgwUy2A5NZB5Eu87ukX8RCVoO9lji34RFV4o2IGU9FhTEWyd4QQKI8OuQRjSknhbJs0tU0r0faPw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@ethersproject/hash": "5.7.0",
+ "@ethersproject/transactions": "5.7.0",
+ "@stablelib/chacha20poly1305": "1.0.1",
+ "@stablelib/hkdf": "1.0.1",
+ "@stablelib/random": "1.0.2",
+ "@stablelib/sha256": "1.0.1",
+ "@stablelib/x25519": "1.0.3",
+ "@walletconnect/jsonrpc-utils": "1.0.8",
+ "@walletconnect/keyvaluestorage": "1.1.1",
+ "@walletconnect/relay-api": "1.0.11",
+ "@walletconnect/relay-auth": "1.0.4",
+ "@walletconnect/safe-json": "1.0.2",
+ "@walletconnect/time": "1.0.2",
+ "@walletconnect/types": "2.17.2",
+ "@walletconnect/window-getters": "1.0.1",
+ "@walletconnect/window-metadata": "1.0.1",
+ "detect-browser": "5.3.0",
+ "elliptic": "6.6.0",
+ "query-string": "7.1.3",
+ "uint8arrays": "3.1.0"
+ }
+ },
+ "node_modules/@walletconnect/window-getters": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz",
+ "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/window-getters/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/@walletconnect/window-metadata": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz",
+ "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@walletconnect/window-getters": "^1.0.1",
+ "tslib": "1.14.1"
+ }
+ },
+ "node_modules/@walletconnect/window-metadata/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "license": "0BSD"
+ },
+ "node_modules/abitype": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.6.tgz",
+ "integrity": "sha512-MMSqYh4+C/aVqI2RQaWqbvI4Kxo5cQV40WQ4QFtDnNzCkqChm8MuENhElmynZlO0qUy/ObkEUaXtKqYnx1Kp3A==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/wevm"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4",
+ "zod": "^3 >=3.22.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.14.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/aria-hidden": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
+ "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-includes": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz",
+ "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "is-string": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlast": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz",
+ "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.findlastindex": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
+ "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flat": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
+ "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
+ "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "es-shim-unscopables": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array.prototype.tosorted": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz",
+ "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
+ "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.22.3",
+ "es-errors": "^1.2.1",
+ "get-intrinsic": "^1.2.3",
+ "is-array-buffer": "^3.0.4",
+ "is-shared-array-buffer": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
+ "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/atomic-sleep": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/axe-core": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
+ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
+ "dev": true,
+ "license": "MPL-2.0",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/axobject-query": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
+ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/babel-plugin-macros": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
+ "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "cosmiconfig": "^7.0.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "npm": ">=6"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "license": "MIT"
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001677",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz",
+ "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chai": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.2.tgz",
+ "integrity": "sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==",
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/citty": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz",
+ "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==",
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.2.3"
+ }
+ },
+ "node_modules/class-variance-authority": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
+ "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "clsx": "2.0.0"
+ },
+ "funding": {
+ "url": "https://joebell.co.uk"
+ }
+ },
+ "node_modules/class-variance-authority/node_modules/clsx": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
+ "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
+ "node_modules/clipboardy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz",
+ "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==",
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^8.0.1",
+ "is-wsl": "^3.1.0",
+ "is64bit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "license": "MIT"
+ },
+ "node_modules/consola": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
+ "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
+ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
+ "license": "MIT"
+ },
+ "node_modules/cookie-es": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz",
+ "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==",
+ "license": "MIT"
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cosmiconfig/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crossws": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.1.tgz",
+ "integrity": "sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==",
+ "license": "MIT",
+ "dependencies": {
+ "uncrypto": "^0.1.3"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
+ "node_modules/damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
+ "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
+ "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
+ "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/defu": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
+ "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==",
+ "license": "MIT"
+ },
+ "node_modules/destr": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz",
+ "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==",
+ "license": "MIT"
+ },
+ "node_modules/detect-browser": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
+ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==",
+ "license": "MIT"
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==",
+ "license": "MIT"
+ },
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/dijkstrajs": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz",
+ "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==",
+ "license": "MIT"
+ },
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/duplexify": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz",
+ "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==",
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.4.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1",
+ "stream-shift": "^1.0.2"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/elliptic": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz",
+ "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==",
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/encode-utf8": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz",
+ "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==",
+ "license": "MIT"
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/error-ex/node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
+ },
+ "node_modules/es-abstract": {
+ "version": "1.23.3",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
+ "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "arraybuffer.prototype.slice": "^1.0.3",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "data-view-buffer": "^1.0.1",
+ "data-view-byte-length": "^1.0.1",
+ "data-view-byte-offset": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.0.3",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.6",
+ "get-intrinsic": "^1.2.4",
+ "get-symbol-description": "^1.0.2",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.0.7",
+ "is-array-buffer": "^3.0.4",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.1",
+ "is-negative-zero": "^2.0.3",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.3",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.13",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.13.1",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.5",
+ "regexp.prototype.flags": "^1.5.2",
+ "safe-array-concat": "^1.1.2",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.trim": "^1.2.9",
+ "string.prototype.trimend": "^1.0.8",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.2",
+ "typed-array-byte-length": "^1.0.1",
+ "typed-array-byte-offset": "^1.0.2",
+ "typed-array-length": "^1.0.6",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-iterator-helpers": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz",
+ "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
+ "es-set-tostringtag": "^2.0.3",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.0.3",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "iterator.prototype": "^1.1.3",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz",
+ "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
+ "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz",
+ "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz",
+ "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-next": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.0.2.tgz",
+ "integrity": "sha512-N8o6cyUXzlMmQbdc2Kc83g1qomFi3ITqrAZfubipVKET2uR2mCStyGRcx/r8WiAIVMul2KfwRiCHBkTpBvGBmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@next/eslint-plugin-next": "15.0.2",
+ "@rushstack/eslint-patch": "^1.10.3",
+ "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
+ "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-import-resolver-typescript": "^3.5.2",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-jsx-a11y": "^6.10.0",
+ "eslint-plugin-react": "^7.35.0",
+ "eslint-plugin-react-hooks": "^5.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0",
+ "typescript": ">=3.3.1"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
+ "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "is-core-module": "^2.13.0",
+ "resolve": "^1.22.4"
+ }
+ },
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-import-resolver-typescript": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.3.tgz",
+ "integrity": "sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@nolyfill/is-core-module": "1.0.39",
+ "debug": "^4.3.5",
+ "enhanced-resolve": "^5.15.0",
+ "eslint-module-utils": "^2.8.1",
+ "fast-glob": "^3.3.2",
+ "get-tsconfig": "^4.7.5",
+ "is-bun-module": "^1.0.2",
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts"
+ },
+ "peerDependencies": {
+ "eslint": "*",
+ "eslint-plugin-import": "*",
+ "eslint-plugin-import-x": "*"
+ },
+ "peerDependenciesMeta": {
+ "eslint-plugin-import": {
+ "optional": true
+ },
+ "eslint-plugin-import-x": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-import-resolver-typescript/node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-typescript/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import": {
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rtsao/scc": "^1.1.0",
+ "array-includes": "^3.1.8",
+ "array.prototype.findlastindex": "^1.2.5",
+ "array.prototype.flat": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.2",
+ "debug": "^3.2.7",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.9",
+ "eslint-module-utils": "^2.12.0",
+ "hasown": "^2.0.2",
+ "is-core-module": "^2.15.1",
+ "is-glob": "^4.0.3",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "object.groupby": "^1.0.3",
+ "object.values": "^1.2.0",
+ "semver": "^6.3.1",
+ "string.prototype.trimend": "^1.0.8",
+ "tsconfig-paths": "^3.15.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-import/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "aria-query": "^5.3.2",
+ "array-includes": "^3.1.8",
+ "array.prototype.flatmap": "^1.3.2",
+ "ast-types-flow": "^0.0.8",
+ "axe-core": "^4.10.0",
+ "axobject-query": "^4.1.0",
+ "damerau-levenshtein": "^1.0.8",
+ "emoji-regex": "^9.2.2",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^3.3.5",
+ "language-tags": "^1.0.9",
+ "minimatch": "^3.1.2",
+ "object.fromentries": "^2.0.8",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.includes": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
+ }
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.37.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
+ "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-includes": "^3.1.8",
+ "array.prototype.findlast": "^1.2.5",
+ "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.tosorted": "^1.1.4",
+ "doctrine": "^2.1.0",
+ "es-iterator-helpers": "^1.1.0",
+ "estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.1.2",
+ "object.entries": "^1.1.8",
+ "object.fromentries": "^2.0.8",
+ "object.values": "^1.2.0",
+ "prop-types": "^15.8.1",
+ "resolve": "^2.0.0-next.5",
+ "semver": "^6.3.1",
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz",
+ "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/eslint-plugin-react/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/expect-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz",
+ "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
+ "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-redact": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
+ "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/find-root": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
+ "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
+ "license": "MIT"
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
+ "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
+ "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.2.0",
+ "es-abstract": "^1.22.1",
+ "functions-have-names": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/fuse.js": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz",
+ "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-port-please": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz",
+ "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==",
+ "license": "MIT"
+ },
+ "node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
+ "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-tsconfig": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz",
+ "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/goober": {
+ "version": "2.1.16",
+ "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz",
+ "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==",
+ "license": "MIT",
+ "peerDependencies": {
+ "csstype": "^3.0.10"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/h3": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/h3/-/h3-1.13.0.tgz",
+ "integrity": "sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==",
+ "license": "MIT",
+ "dependencies": {
+ "cookie-es": "^1.2.2",
+ "crossws": ">=0.2.0 <0.4.0",
+ "defu": "^6.1.4",
+ "destr": "^2.0.3",
+ "iron-webcrypto": "^1.2.1",
+ "ohash": "^1.1.4",
+ "radix3": "^1.1.2",
+ "ufo": "^1.5.4",
+ "uncrypto": "^0.1.3",
+ "unenv": "^1.10.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hey-listen": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz",
+ "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==",
+ "license": "MIT"
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/http-shutdown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz",
+ "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/idb-keyval": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz",
+ "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/input-otp": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.1.tgz",
+ "integrity": "sha512-+yvpmKYKHi9jIGngxagY9oWiiblPB7+nEO75F2l2o4vs+6vpPZZmUl4tBNYuTCvQjhvEIbdNeJu70bhfYP2nbw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/iron-webcrypto": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
+ "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/brc-dd"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/is-async-function": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
+ "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bun-module": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.2.1.tgz",
+ "integrity": "sha512-AmidtEM6D6NmUiLOvvU7+IePxjEjOzra2h0pSrsfSAcXwl/83zLLXDByafUJy9k/rKK0pvXMLdwKwGHlX2Ke6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.6.3"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
+ "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
+ "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
+ "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-negative-zero": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
+ "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
+ "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "which-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
+ "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is64bit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz",
+ "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==",
+ "license": "MIT",
+ "dependencies": {
+ "system-architecture": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/isows": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz",
+ "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
+ "node_modules/iterator.prototype": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
+ "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "get-intrinsic": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "reflect.getprototypeof": "^1.0.4",
+ "set-function-name": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.6",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
+ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "license": "MIT"
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/jsx-ast-utils": {
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
+ "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "object.assign": "^4.1.4",
+ "object.values": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/keyvaluestorage-interface": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz",
+ "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==",
+ "license": "MIT"
+ },
+ "node_modules/language-subtag-registry": {
+ "version": "0.3.23",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz",
+ "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/language-tags": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz",
+ "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "language-subtag-registry": "^0.3.20"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "license": "MIT"
+ },
+ "node_modules/listhen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz",
+ "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@parcel/watcher": "^2.4.1",
+ "@parcel/watcher-wasm": "^2.4.1",
+ "citty": "^0.1.6",
+ "clipboardy": "^4.0.0",
+ "consola": "^3.2.3",
+ "crossws": ">=0.2.0 <0.4.0",
+ "defu": "^6.1.4",
+ "get-port-please": "^3.1.2",
+ "h3": "^1.12.0",
+ "http-shutdown": "^1.2.2",
+ "jiti": "^2.1.2",
+ "mlly": "^1.7.1",
+ "node-forge": "^1.3.1",
+ "pathe": "^1.1.2",
+ "std-env": "^3.7.0",
+ "ufo": "^1.5.4",
+ "untun": "^0.1.3",
+ "uqr": "^0.1.2"
+ },
+ "bin": {
+ "listen": "bin/listhen.mjs",
+ "listhen": "bin/listhen.mjs"
+ }
+ },
+ "node_modules/listhen/node_modules/jiti": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.0.tgz",
+ "integrity": "sha512-H5UpaUI+aHOqZXlYOaFP/8AzKsg+guWu+Pr3Y8i7+Y3zr1aXAvCvTAQ1RxSc6oVD8R8c7brgNtTVP91E7upH/g==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "lib/jiti-cli.mjs"
+ }
+ },
+ "node_modules/lit": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz",
+ "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit/reactive-element": "^1.6.0",
+ "lit-element": "^3.3.0",
+ "lit-html": "^2.8.0"
+ }
+ },
+ "node_modules/lit-element": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz",
+ "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@lit-labs/ssr-dom-shim": "^1.1.0",
+ "@lit/reactive-element": "^1.3.0",
+ "lit-html": "^2.8.0"
+ }
+ },
+ "node_modules/lit-html": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz",
+ "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@types/trusted-types": "^2.0.2"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz",
+ "integrity": "sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==",
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "license": "ISC"
+ },
+ "node_modules/lucide-react": {
+ "version": "0.454.0",
+ "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz",
+ "integrity": "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==",
+ "license": "ISC",
+ "peerDependencies": {
+ "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.12",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz",
+ "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "license": "ISC"
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "license": "MIT"
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mipd": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz",
+ "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wagmi-dev"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.2.tgz",
+ "integrity": "sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.12.1",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.2.0",
+ "ufo": "^1.5.4"
+ }
+ },
+ "node_modules/motion": {
+ "version": "10.16.2",
+ "resolved": "https://registry.npmjs.org/motion/-/motion-10.16.2.tgz",
+ "integrity": "sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@motionone/animation": "^10.15.1",
+ "@motionone/dom": "^10.16.2",
+ "@motionone/svelte": "^10.16.2",
+ "@motionone/types": "^10.15.1",
+ "@motionone/utils": "^10.15.1",
+ "@motionone/vue": "^10.16.2"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/multiformats": {
+ "version": "9.9.0",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz",
+ "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==",
+ "license": "(Apache-2.0 AND MIT)"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/next": {
+ "version": "15.0.2",
+ "resolved": "https://registry.npmjs.org/next/-/next-15.0.2.tgz",
+ "integrity": "sha512-rxIWHcAu4gGSDmwsELXacqAPUk+j8dV/A9cDF5fsiCMpkBDYkO2AEaL1dfD+nNmDiU6QMCFN8Q30VEKapT9UHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@next/env": "15.0.2",
+ "@swc/counter": "0.1.3",
+ "@swc/helpers": "0.5.13",
+ "busboy": "1.6.0",
+ "caniuse-lite": "^1.0.30001579",
+ "postcss": "8.4.31",
+ "styled-jsx": "5.1.6"
+ },
+ "bin": {
+ "next": "dist/bin/next"
+ },
+ "engines": {
+ "node": ">=18.18.0"
+ },
+ "optionalDependencies": {
+ "@next/swc-darwin-arm64": "15.0.2",
+ "@next/swc-darwin-x64": "15.0.2",
+ "@next/swc-linux-arm64-gnu": "15.0.2",
+ "@next/swc-linux-arm64-musl": "15.0.2",
+ "@next/swc-linux-x64-gnu": "15.0.2",
+ "@next/swc-linux-x64-musl": "15.0.2",
+ "@next/swc-win32-arm64-msvc": "15.0.2",
+ "@next/swc-win32-x64-msvc": "15.0.2",
+ "sharp": "^0.33.5"
+ },
+ "peerDependencies": {
+ "@opentelemetry/api": "^1.1.0",
+ "@playwright/test": "^1.41.2",
+ "babel-plugin-react-compiler": "*",
+ "react": "^18.2.0 || 19.0.0-rc-02c0e824-20241028",
+ "react-dom": "^18.2.0 || 19.0.0-rc-02c0e824-20241028",
+ "sass": "^1.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@opentelemetry/api": {
+ "optional": true
+ },
+ "@playwright/test": {
+ "optional": true
+ },
+ "babel-plugin-react-compiler": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/next/node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "license": "MIT"
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch-native": {
+ "version": "1.6.4",
+ "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz",
+ "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==",
+ "license": "MIT"
+ },
+ "node_modules/node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/npm-run-path/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
+ "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.entries": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz",
+ "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.fromentries": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz",
+ "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.groupby": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz",
+ "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
+ "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/ofetch": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz",
+ "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==",
+ "license": "MIT",
+ "dependencies": {
+ "destr": "^2.0.3",
+ "node-fetch-native": "^1.6.4",
+ "ufo": "^1.5.4"
+ }
+ },
+ "node_modules/ohash": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.4.tgz",
+ "integrity": "sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==",
+ "license": "MIT"
+ },
+ "node_modules/on-exit-leak-free": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz",
+ "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==",
+ "license": "MIT"
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
+ "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pino": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz",
+ "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==",
+ "license": "MIT",
+ "dependencies": {
+ "atomic-sleep": "^1.0.0",
+ "fast-redact": "^3.0.0",
+ "on-exit-leak-free": "^0.2.0",
+ "pino-abstract-transport": "v0.5.0",
+ "pino-std-serializers": "^4.0.0",
+ "process-warning": "^1.0.0",
+ "quick-format-unescaped": "^4.0.3",
+ "real-require": "^0.1.0",
+ "safe-stable-stringify": "^2.1.0",
+ "sonic-boom": "^2.2.1",
+ "thread-stream": "^0.15.1"
+ },
+ "bin": {
+ "pino": "bin.js"
+ }
+ },
+ "node_modules/pino-abstract-transport": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz",
+ "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "duplexify": "^4.1.2",
+ "split2": "^4.0.0"
+ }
+ },
+ "node_modules/pino-std-serializers": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz",
+ "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==",
+ "license": "MIT"
+ },
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz",
+ "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.2",
+ "pathe": "^1.1.2"
+ }
+ },
+ "node_modules/pngjs": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
+ "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
+ "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.47",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
+ "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "postcss": ">=8.0.9",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/postcss-load-config/node_modules/lilconfig": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
+ "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/postcss-nested": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
+ "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.1"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/preact": {
+ "version": "10.24.3",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz",
+ "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/preact"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/process-warning": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz",
+ "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==",
+ "license": "MIT"
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/proxy-compare": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.5.1.tgz",
+ "integrity": "sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==",
+ "license": "MIT"
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qrcode": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz",
+ "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==",
+ "license": "MIT",
+ "dependencies": {
+ "dijkstrajs": "^1.0.1",
+ "encode-utf8": "^1.0.3",
+ "pngjs": "^5.0.0",
+ "yargs": "^15.3.1"
+ },
+ "bin": {
+ "qrcode": "bin/qrcode"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
+ "license": "MIT",
+ "dependencies": {
+ "decode-uri-component": "^0.2.2",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quick-format-unescaped": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
+ "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
+ "license": "MIT"
+ },
+ "node_modules/radix3": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz",
+ "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==",
+ "license": "MIT"
+ },
+ "node_modules/react": {
+ "version": "19.0.0-rc-02c0e824-20241028",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.0.0-rc-02c0e824-20241028.tgz",
+ "integrity": "sha512-GbZ7hpPHQMiEu53BqEaPQVM/4GG4hARo+mqEEnx4rYporDvNvUjutiAFxYFSbu6sgHwcr7LeFv8htEOwALVA2A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.0.0-rc-02c0e824-20241028",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0-rc-02c0e824-20241028.tgz",
+ "integrity": "sha512-LrZf3DfHL6Fs07wwlUCHrzFTCMM19yA99MvJpfLokN4I2nBAZvREGZjZAn8VPiSfN72+i9j1eL4wB8gC695F3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "scheduler": "0.25.0-rc-02c0e824-20241028"
+ },
+ "peerDependencies": {
+ "react": "19.0.0-rc-02c0e824-20241028"
+ }
+ },
+ "node_modules/react-hot-toast": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz",
+ "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==",
+ "license": "MIT",
+ "dependencies": {
+ "goober": "^2.1.10"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=16",
+ "react-dom": ">=16"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/react-remove-scroll": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz",
+ "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==",
+ "license": "MIT",
+ "dependencies": {
+ "react-remove-scroll-bar": "^2.3.6",
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.0",
+ "use-sidecar": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-remove-scroll-bar": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz",
+ "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==",
+ "license": "MIT",
+ "dependencies": {
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-style-singleton": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
+ "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
+ "license": "MIT",
+ "dependencies": {
+ "get-nonce": "^1.0.0",
+ "invariant": "^2.2.4",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/real-require": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz",
+ "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
+ "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.1",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "globalthis": "^1.0.3",
+ "which-builtin-type": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "license": "MIT"
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
+ "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "license": "ISC"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.25.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.25.0.tgz",
+ "integrity": "sha512-uVbClXmR6wvx5R1M3Od4utyLUxrmOcEm3pAtMphn73Apq19PDtHpgZoEvqH2YnnaNUuvKmg2DgRd2Sqv+odyqg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.6"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.25.0",
+ "@rollup/rollup-android-arm64": "4.25.0",
+ "@rollup/rollup-darwin-arm64": "4.25.0",
+ "@rollup/rollup-darwin-x64": "4.25.0",
+ "@rollup/rollup-freebsd-arm64": "4.25.0",
+ "@rollup/rollup-freebsd-x64": "4.25.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.25.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.25.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.25.0",
+ "@rollup/rollup-linux-arm64-musl": "4.25.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.25.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.25.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.25.0",
+ "@rollup/rollup-linux-x64-gnu": "4.25.0",
+ "@rollup/rollup-linux-x64-musl": "4.25.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.25.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.25.0",
+ "@rollup/rollup-win32-x64-msvc": "4.25.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
+ "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "get-intrinsic": "^1.2.4",
+ "has-symbols": "^1.0.3",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
+ "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.1.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-stable-stringify": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
+ "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.25.0-rc-02c0e824-20241028",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0-rc-02c0e824-20241028.tgz",
+ "integrity": "sha512-GysnKjmMSaWcwsKTLzeJO0IhU3EyIiC0ivJKE6yDNLqt3IMxDByx8b6lSNXRNdN+ULUY0WLLjSPaZ0LuU/GnTg==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "devOptional": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "license": "ISC"
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/sharp": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz",
+ "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.3",
+ "semver": "^7.6.3"
+ },
+ "engines": {
+ "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ },
+ "optionalDependencies": {
+ "@img/sharp-darwin-arm64": "0.33.5",
+ "@img/sharp-darwin-x64": "0.33.5",
+ "@img/sharp-libvips-darwin-arm64": "1.0.4",
+ "@img/sharp-libvips-darwin-x64": "1.0.4",
+ "@img/sharp-libvips-linux-arm": "1.0.5",
+ "@img/sharp-libvips-linux-arm64": "1.0.4",
+ "@img/sharp-libvips-linux-s390x": "1.0.4",
+ "@img/sharp-libvips-linux-x64": "1.0.4",
+ "@img/sharp-libvips-linuxmusl-arm64": "1.0.4",
+ "@img/sharp-libvips-linuxmusl-x64": "1.0.4",
+ "@img/sharp-linux-arm": "0.33.5",
+ "@img/sharp-linux-arm64": "0.33.5",
+ "@img/sharp-linux-s390x": "0.33.5",
+ "@img/sharp-linux-x64": "0.33.5",
+ "@img/sharp-linuxmusl-arm64": "0.33.5",
+ "@img/sharp-linuxmusl-x64": "0.33.5",
+ "@img/sharp-wasm32": "0.33.5",
+ "@img/sharp-win32-ia32": "0.33.5",
+ "@img/sharp-win32-x64": "0.33.5"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "license": "ISC"
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/sonic-boom": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz",
+ "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==",
+ "license": "MIT",
+ "dependencies": {
+ "atomic-sleep": "^1.0.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/split2": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
+ "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10.x"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
+ "license": "MIT"
+ },
+ "node_modules/std-env": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
+ "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
+ "license": "MIT"
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+ "license": "MIT"
+ },
+ "node_modules/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/string.prototype.includes": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/string.prototype.matchall": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
+ "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.7",
+ "regexp.prototype.flags": "^1.5.2",
+ "set-function-name": "^2.0.2",
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz",
+ "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
+ "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.0",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
+ "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/styled-jsx": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+ "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
+ "license": "MIT",
+ "dependencies": {
+ "client-only": "0.0.1"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ },
+ "peerDependencies": {
+ "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
+ "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==",
+ "license": "MIT"
+ },
+ "node_modules/sucrase": {
+ "version": "3.35.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "^10.3.10",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/system-architecture": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz",
+ "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/tailwind-merge": {
+ "version": "2.5.4",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz",
+ "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.14",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz",
+ "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.0",
+ "lilconfig": "^2.1.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.23",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.1",
+ "postcss-nested": "^6.0.1",
+ "postcss-selector-parser": "^6.0.11",
+ "resolve": "^1.22.2",
+ "sucrase": "^3.32.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tailwindcss-animate": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "tailwindcss": ">=3.0.0 || insiders"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/thirdweb": {
+ "version": "5.67.0",
+ "resolved": "https://registry.npmjs.org/thirdweb/-/thirdweb-5.67.0.tgz",
+ "integrity": "sha512-2geMbjmL9isG1cTkPvzEhVWWZTunPJEFzP3mUxhaovU97z+2zTBaBj6wnR2XcKSk18tAL7+mD7kI3zOseaHtGg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@coinbase/wallet-sdk": "4.2.0",
+ "@emotion/react": "11.13.3",
+ "@emotion/styled": "11.13.0",
+ "@google/model-viewer": "2.1.1",
+ "@noble/curves": "1.6.0",
+ "@noble/hashes": "1.5.0",
+ "@passwordless-id/webauthn": "^1.6.1",
+ "@radix-ui/react-dialog": "1.1.2",
+ "@radix-ui/react-focus-scope": "1.1.0",
+ "@radix-ui/react-icons": "1.3.1",
+ "@radix-ui/react-tooltip": "1.1.3",
+ "@tanstack/react-query": "5.59.19",
+ "@walletconnect/ethereum-provider": "2.17.2",
+ "@walletconnect/sign-client": "2.17.2",
+ "abitype": "1.0.6",
+ "fuse.js": "7.0.0",
+ "input-otp": "^1.4.1",
+ "mipd": "0.0.7",
+ "uqr": "0.1.2",
+ "viem": "2.21.41"
+ },
+ "bin": {
+ "thirdweb": "dist/esm/cli/bin.js",
+ "thirdweb-cli": "dist/esm/cli/bin.js"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@aws-sdk/client-lambda": "^3",
+ "@aws-sdk/credential-providers": "^3",
+ "@coinbase/wallet-mobile-sdk": "^1",
+ "@mobile-wallet-protocol/client": "0.1.1",
+ "@react-native-async-storage/async-storage": "^1 || ^2",
+ "ethers": "^5 || ^6",
+ "expo-linking": "^6",
+ "expo-web-browser": "^13",
+ "react": ">=18",
+ "react-native": "*",
+ "react-native-aes-gcm-crypto": "^0.2",
+ "react-native-quick-crypto": ">=0.7.0-rc.6 || >=0.7",
+ "react-native-svg": "^15",
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "@aws-sdk/client-kms": {
+ "optional": true
+ },
+ "@aws-sdk/client-lambda": {
+ "optional": true
+ },
+ "@aws-sdk/credential-providers": {
+ "optional": true
+ },
+ "@coinbase/wallet-mobile-sdk": {
+ "optional": true
+ },
+ "@mobile-wallet-protocol/client": {
+ "optional": true
+ },
+ "@react-native-async-storage/async-storage": {
+ "optional": true
+ },
+ "ethers": {
+ "optional": true
+ },
+ "expo-linking": {
+ "optional": true
+ },
+ "expo-web-browser": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ },
+ "react-native-aes-gcm-crypto": {
+ "optional": true
+ },
+ "react-native-passkey": {
+ "optional": true
+ },
+ "react-native-quick-crypto": {
+ "optional": true
+ },
+ "react-native-svg": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/thread-stream": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz",
+ "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==",
+ "license": "MIT",
+ "dependencies": {
+ "real-require": "^0.1.0"
+ }
+ },
+ "node_modules/three": {
+ "version": "0.146.0",
+ "resolved": "https://registry.npmjs.org/three/-/three-0.146.0.tgz",
+ "integrity": "sha512-1lvNfLezN6OJ9NaFAhfX4sm5e9YCzHtaRgZ1+B4C+Hv6TibRMsuBAM5/wVKzxjpYIlMymvgsHEFrrigEfXnb2A==",
+ "license": "MIT"
+ },
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
+ "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
+ "license": "MIT"
+ },
+ "node_modules/tinypool": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.1.tgz",
+ "integrity": "sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/tinyrainbow": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
+ "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tinyspy": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
+ "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "license": "MIT"
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
+ "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "3.15.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz",
+ "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
+ "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
+ "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
+ "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-proto": "^1.0.3",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
+ "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==",
+ "license": "MIT"
+ },
+ "node_modules/uint8arrays": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz",
+ "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==",
+ "license": "MIT",
+ "dependencies": {
+ "multiformats": "^9.4.2"
+ }
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
+ "which-boxed-primitive": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/uncrypto": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz",
+ "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==",
+ "license": "MIT"
+ },
+ "node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unenv": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/unenv/-/unenv-1.10.0.tgz",
+ "integrity": "sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "consola": "^3.2.3",
+ "defu": "^6.1.4",
+ "mime": "^3.0.0",
+ "node-fetch-native": "^1.6.4",
+ "pathe": "^1.1.2"
+ }
+ },
+ "node_modules/unstorage": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.13.1.tgz",
+ "integrity": "sha512-ELexQHUrG05QVIM/iUeQNdl9FXDZhqLJ4yP59fnmn2jGUh0TEulwOgov1ubOb3Gt2ZGK/VMchJwPDNVEGWQpRg==",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^3.1.3",
+ "chokidar": "^3.6.0",
+ "citty": "^0.1.6",
+ "destr": "^2.0.3",
+ "h3": "^1.13.0",
+ "listhen": "^1.9.0",
+ "lru-cache": "^10.4.3",
+ "node-fetch-native": "^1.6.4",
+ "ofetch": "^1.4.1",
+ "ufo": "^1.5.4"
+ },
+ "peerDependencies": {
+ "@azure/app-configuration": "^1.7.0",
+ "@azure/cosmos": "^4.1.1",
+ "@azure/data-tables": "^13.2.2",
+ "@azure/identity": "^4.5.0",
+ "@azure/keyvault-secrets": "^4.9.0",
+ "@azure/storage-blob": "^12.25.0",
+ "@capacitor/preferences": "^6.0.2",
+ "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0",
+ "@planetscale/database": "^1.19.0",
+ "@upstash/redis": "^1.34.3",
+ "@vercel/kv": "^1.0.1",
+ "idb-keyval": "^6.2.1",
+ "ioredis": "^5.4.1"
+ },
+ "peerDependenciesMeta": {
+ "@azure/app-configuration": {
+ "optional": true
+ },
+ "@azure/cosmos": {
+ "optional": true
+ },
+ "@azure/data-tables": {
+ "optional": true
+ },
+ "@azure/identity": {
+ "optional": true
+ },
+ "@azure/keyvault-secrets": {
+ "optional": true
+ },
+ "@azure/storage-blob": {
+ "optional": true
+ },
+ "@capacitor/preferences": {
+ "optional": true
+ },
+ "@netlify/blobs": {
+ "optional": true
+ },
+ "@planetscale/database": {
+ "optional": true
+ },
+ "@upstash/redis": {
+ "optional": true
+ },
+ "@vercel/kv": {
+ "optional": true
+ },
+ "idb-keyval": {
+ "optional": true
+ },
+ "ioredis": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/untun": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz",
+ "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "citty": "^0.1.5",
+ "consola": "^3.2.3",
+ "pathe": "^1.1.1"
+ },
+ "bin": {
+ "untun": "bin/untun.mjs"
+ }
+ },
+ "node_modules/uqr": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/uqr/-/uqr-0.1.2.tgz",
+ "integrity": "sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==",
+ "license": "MIT"
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/use-callback-ref": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz",
+ "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sidecar": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
+ "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/valtio": {
+ "version": "1.11.2",
+ "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.11.2.tgz",
+ "integrity": "sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==",
+ "license": "MIT",
+ "dependencies": {
+ "proxy-compare": "2.5.1",
+ "use-sync-external-store": "1.2.0"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16.8",
+ "react": ">=16.8"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/viem": {
+ "version": "2.21.41",
+ "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.41.tgz",
+ "integrity": "sha512-FxDALzW6I9lGSISbGKqGLfsc4GCtALrgm3mpQcOi7gpyTBkKkl39IWgRjAK1KGNOOvqneQmUKSxWsApkUYSn5w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@adraffy/ens-normalize": "1.11.0",
+ "@noble/curves": "1.6.0",
+ "@noble/hashes": "1.5.0",
+ "@scure/bip32": "1.5.0",
+ "@scure/bip39": "1.4.0",
+ "abitype": "1.0.6",
+ "isows": "1.0.6",
+ "webauthn-p256": "0.0.10",
+ "ws": "8.18.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/viem/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.10",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz",
+ "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.4.tgz",
+ "integrity": "sha512-kqa9v+oi4HwkG6g8ufRnb5AeplcRw8jUF6/7/Qz1qRQOXHImG8YnLbB+LLszENwFnoBl9xIf9nVdCFzNd7GQEg==",
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.3.7",
+ "pathe": "^1.1.2",
+ "vite": "^5.0.0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vitest": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.4.tgz",
+ "integrity": "sha512-eDjxbVAJw1UJJCHr5xr/xM86Zx+YxIEXGAR+bmnEID7z9qWfoxpHw0zdobz+TQAFOLT+nEXz3+gx6nUJ7RgmlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/expect": "2.1.4",
+ "@vitest/mocker": "2.1.4",
+ "@vitest/pretty-format": "^2.1.4",
+ "@vitest/runner": "2.1.4",
+ "@vitest/snapshot": "2.1.4",
+ "@vitest/spy": "2.1.4",
+ "@vitest/utils": "2.1.4",
+ "chai": "^5.1.2",
+ "debug": "^4.3.7",
+ "expect-type": "^1.1.0",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2",
+ "std-env": "^3.7.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.1",
+ "tinypool": "^1.0.1",
+ "tinyrainbow": "^1.2.0",
+ "vite": "^5.0.0",
+ "vite-node": "2.1.4",
+ "why-is-node-running": "^2.3.0"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "2.1.4",
+ "@vitest/ui": "2.1.4",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webauthn-p256": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz",
+ "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "^1.4.0",
+ "@noble/hashes": "^1.4.0"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-builtin-type": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
+ "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.0.5",
+ "is-finalizationregistry": "^1.0.2",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.1.4",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.15"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
+ "license": "ISC"
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
+ "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
+ "license": "MIT",
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz",
+ "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "15.4.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+ "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^6.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^4.1.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^4.2.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^18.1.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "18.1.3",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+ "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/yargs/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yargs/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/Core uniswap/Frontend/package.json b/Core uniswap/Frontend/package.json
new file mode 100644
index 00000000..fcb6bf1c
--- /dev/null
+++ b/Core uniswap/Frontend/package.json
@@ -0,0 +1,38 @@
+{
+ "name": "reusable",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@radix-ui/react-label": "^2.1.0",
+ "@radix-ui/react-progress": "^1.1.0",
+ "@radix-ui/react-select": "^2.1.2",
+ "@radix-ui/react-slot": "^1.1.0",
+ "@radix-ui/react-tabs": "^1.1.1",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.1.1",
+ "lucide-react": "^0.454.0",
+ "next": "15.0.2",
+ "react": "19.0.0-rc-02c0e824-20241028",
+ "react-dom": "19.0.0-rc-02c0e824-20241028",
+ "react-hot-toast": "^2.4.1",
+ "tailwind-merge": "^2.5.4",
+ "tailwindcss-animate": "^1.0.7",
+ "thirdweb": "^5.67.0"
+ },
+ "devDependencies": {
+ "@types/node": "^20",
+ "@types/react": "^18",
+ "@types/react-dom": "^18",
+ "eslint": "^8",
+ "eslint-config-next": "15.0.2",
+ "postcss": "^8",
+ "tailwindcss": "^3.4.1",
+ "typescript": "^5"
+ }
+}
diff --git a/Core uniswap/Frontend/postcss.config.mjs b/Core uniswap/Frontend/postcss.config.mjs
new file mode 100644
index 00000000..1a69fd2a
--- /dev/null
+++ b/Core uniswap/Frontend/postcss.config.mjs
@@ -0,0 +1,8 @@
+/** @type {import('postcss-load-config').Config} */
+const config = {
+ plugins: {
+ tailwindcss: {},
+ },
+};
+
+export default config;
diff --git a/Core uniswap/Frontend/public/file.svg b/Core uniswap/Frontend/public/file.svg
new file mode 100644
index 00000000..004145cd
--- /dev/null
+++ b/Core uniswap/Frontend/public/file.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Core uniswap/Frontend/public/globe.svg b/Core uniswap/Frontend/public/globe.svg
new file mode 100644
index 00000000..567f17b0
--- /dev/null
+++ b/Core uniswap/Frontend/public/globe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Core uniswap/Frontend/public/next.svg b/Core uniswap/Frontend/public/next.svg
new file mode 100644
index 00000000..5174b28c
--- /dev/null
+++ b/Core uniswap/Frontend/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Core uniswap/Frontend/public/vercel.svg b/Core uniswap/Frontend/public/vercel.svg
new file mode 100644
index 00000000..77053960
--- /dev/null
+++ b/Core uniswap/Frontend/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Core uniswap/Frontend/public/window.svg b/Core uniswap/Frontend/public/window.svg
new file mode 100644
index 00000000..b2b2a44f
--- /dev/null
+++ b/Core uniswap/Frontend/public/window.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Core uniswap/Frontend/tailwind.config.ts b/Core uniswap/Frontend/tailwind.config.ts
new file mode 100644
index 00000000..ebc9f38b
--- /dev/null
+++ b/Core uniswap/Frontend/tailwind.config.ts
@@ -0,0 +1,63 @@
+import type { Config } from "tailwindcss";
+
+const config: Config = {
+ darkMode: ["class"],
+ content: [
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
+ theme: {
+ extend: {
+ colors: {
+ background: 'hsl(var(--background))',
+ foreground: 'hsl(var(--foreground))',
+ card: {
+ DEFAULT: 'hsl(var(--card))',
+ foreground: 'hsl(var(--card-foreground))'
+ },
+ popover: {
+ DEFAULT: 'hsl(var(--popover))',
+ foreground: 'hsl(var(--popover-foreground))'
+ },
+ primary: {
+ DEFAULT: 'hsl(var(--primary))',
+ foreground: 'hsl(var(--primary-foreground))'
+ },
+ secondary: {
+ DEFAULT: 'hsl(var(--secondary))',
+ foreground: 'hsl(var(--secondary-foreground))'
+ },
+ muted: {
+ DEFAULT: 'hsl(var(--muted))',
+ foreground: 'hsl(var(--muted-foreground))'
+ },
+ accent: {
+ DEFAULT: 'hsl(var(--accent))',
+ foreground: 'hsl(var(--accent-foreground))'
+ },
+ destructive: {
+ DEFAULT: 'hsl(var(--destructive))',
+ foreground: 'hsl(var(--destructive-foreground))'
+ },
+ border: 'hsl(var(--border))',
+ input: 'hsl(var(--input))',
+ ring: 'hsl(var(--ring))',
+ chart: {
+ '1': 'hsl(var(--chart-1))',
+ '2': 'hsl(var(--chart-2))',
+ '3': 'hsl(var(--chart-3))',
+ '4': 'hsl(var(--chart-4))',
+ '5': 'hsl(var(--chart-5))'
+ }
+ },
+ borderRadius: {
+ lg: 'var(--radius)',
+ md: 'calc(var(--radius) - 2px)',
+ sm: 'calc(var(--radius) - 4px)'
+ }
+ }
+ },
+ plugins: [require("tailwindcss-animate")],
+};
+export default config;
diff --git a/Core uniswap/Frontend/tsconfig.json b/Core uniswap/Frontend/tsconfig.json
new file mode 100644
index 00000000..d8b93235
--- /dev/null
+++ b/Core uniswap/Frontend/tsconfig.json
@@ -0,0 +1,27 @@
+{
+ "compilerOptions": {
+ "target": "ES2017",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/Core uniswap/README.md b/Core uniswap/README.md
new file mode 100644
index 00000000..52bfeb9c
--- /dev/null
+++ b/Core uniswap/README.md
@@ -0,0 +1,189 @@
+Here’s a tailored README file for your **Uniswap-on-Core** project:
+
+---
+
+# Uniswap-on-Core
+
+Welcome to **Uniswap-on-Core**, a decentralized exchange (DEX) platform built on the Core blockchain. This platform enables users to swap tokens seamlessly, create liquidity pools, add liquidity, and utilize a faucet to mint tokens for testing purposes. With a simple and intuitive interface, this project aims to bring DeFi functionalities to the Core ecosystem.
+
+## Features
+
+- **Token Swapping**: Swap one token for another effortlessly using liquidity pools.
+- **Liquidity Pools**: Create liquidity pools to support token trading and earn rewards as a liquidity provider.
+- **Add Liquidity**: Contribute to existing pools to improve liquidity and earn LP tokens.
+- **Faucet**: Mint test tokens to interact with the platform on the Core blockchain TestNet.
+
+## Learning Takeaways
+
+This project demonstrates the following concepts:
+
+- Integrating MetaMask with a DEX platform on Core TestNet.
+- Developing and deploying smart contracts to facilitate token swaps, liquidity pools, and minting.
+- Building a React-based front-end to interact with smart contracts.
+- Using Thirdweb framework for seamless communication with the blockchain.
+- Understanding core principles of decentralized exchanges and automated market makers (AMMs).
+
+## Software Prerequisites
+
+Ensure you have the following installed:
+
+- [Git](https://git-scm.com/) v2.44.0
+- [Node.js](https://nodejs.org/en) v20.11.1
+- [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) v10.2.4
+- [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation) v2.22.7
+- [MetaMask Web Wallet Extension](https://metamask.io/download/)
+
+## Setting up the Development Environment
+
+1. Clone the repository:
+
+ ```bash
+ git clone https://github.com/adamsdavee/Uniswap-on-Core.git
+ cd Uniswap-on-Core
+ ```
+
+2. Install dependencies:
+
+ ```bash
+ npm install
+ ```
+
+3. Configure MetaMask to use the Core TestNet and ensure you have test tokens for interaction. Refer [here](https://docs.coredao.org/docs/Dev-Guide/core-testnet-wallet-config) for wallet configuration.
+
+4. Create a `.env` file in the root directory to store your private key securely:
+
+ ```
+ PrivateKey= your-private-key
+ ```
+
+ > **Note**: Add `.env` to `.gitignore` to avoid exposing sensitive information.
+
+## Smart Contracts Overview
+
+### Token Swap Contract
+
+Facilitates token swapping through an AMM mechanism.
+
+- **Functionality**: Swap tokens, calculate rates, and manage reserves.
+
+### Liquidity Pool Contract
+
+Allows users to create and contribute liquidity pools.
+
+- **Functionality**: Track liquidity shares, enable adding/removing liquidity, and distribute fees.
+
+### Faucet Contract
+
+Provides test tokens to users for interacting with the platform.
+
+- **Functionality**: Mint tokens with a fixed supply and limit per user request.
+
+## Front-End Integration
+
+The React-based front end is built to interact seamlessly with the deployed contracts.
+
+### Key Components
+
+1. **Token Swap Interface**:
+ - Swap tokens by specifying input amounts.
+
+2. **Liquidity Management**:
+ - Create new liquidity pools.
+ - Add or remove liquidity from existing pools.
+ - Track rewards and shares.
+
+3. **Faucet**:
+ - Request test tokens to begin interaction.
+
+### Running the Front-End
+
+1. Navigate to the `frontend` directory:
+
+ ```bash
+ cd frontend
+ ```
+
+2. Install dependencies:
+
+ ```bash
+ npm install
+ ```
+
+3. Start the development server:
+
+ ```bash
+ npm run dev
+ ```
+
+Access the application in your browser at `http://localhost:3000`.
+
+## Deploying the Smart Contracts
+
+1. Compile the contracts:
+
+ ```bash
+ npx hardhat compile
+ ```
+
+2. Deploy the contracts:
+
+ ```bash
+ npx hardhat run scripts/deployTokens.js
+ npx hardhat run scripts/deploy_factory_.js
+ npx hardhat run scripts/deploy_liquidity.js
+ ```
+
+3. Note the contract addresses from the deployment output for front-end integration.
+
+## Testing
+
+Run the Hardhat test suite to verify the functionality of the smart contracts:
+
+```bash
+npx hardhat test
+```
+
+## Project Structure
+
+```bash
+Uniswap-on-Core
+│ README.md
+│ hardhat.config.js
+│ package.json
+│
+├── contracts
+│ └── (Smart contracts for swapping, liquidity pools, and faucet)
+├── scripts
+│ └── deploy.js
+├── test
+│ └── (Test files for smart contracts)
+└── frontend
+ ├── app
+ │ ├── components
+ │ │ └── (React components for the front-end)
+ │ ├── page.tsx
+ │ │
+ │ ├── layout.tsx
+ │ └── global.module.css
+ │
+ ├── package.json
+ └── public
+```
+
+## Contribution
+
+Contributions are welcome! If you'd like to improve this project, please:
+
+1. Fork the repository.
+2. Create a feature branch (`git checkout -b feature-name`).
+3. Commit your changes (`git commit -m "Add feature"`).
+4. Push the branch (`git push origin feature-name`).
+5. Open a Pull Request.
+
+## License
+
+This project is open-source and available under the MIT License.
+
+---
+
+Feel free to customize this further based on your preferences or the specific details of your project.
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/Factory.sol b/Core uniswap/contracts/core/Factory.sol
new file mode 100644
index 00000000..4eedaeed
--- /dev/null
+++ b/Core uniswap/contracts/core/Factory.sol
@@ -0,0 +1,85 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+import "./interfaces/IPool.sol";
+import "./Pool.sol";
+
+error PoolFactory__IdenticalAddress();
+error PoolFactory__ZeroAddress();
+error PoolFactory__PoolExists();
+error PoolFactory__NotSetter();
+
+contract PoolFactory {
+ address private feeReceiver;
+ mapping(address => bool) private feeReceiverSetter;
+
+ mapping(address => mapping(address => address)) private getPairs;
+ address[] private allPairs;
+
+ event PoolCreated(address tokenA, address tokenB, address poolAddress);
+
+ constructor(address _feeReceiverSetter) {
+ feeReceiverSetter[_feeReceiverSetter] = true;
+ }
+
+ function createPool(
+ address tokenA,
+ address tokenB
+ ) external returns (address poolAddress) {
+ if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();
+ (address token0, address token1) = tokenA < tokenB
+ ? (tokenA, tokenB)
+ : (tokenB, tokenA);
+ // since tokenA is the smaller address we can check if its == address(0);
+ if (token0 == address(0)) revert PoolFactory__ZeroAddress();
+ if (getPairs[token0][token1] != address(0))
+ revert PoolFactory__PoolExists();
+
+ bytes memory bytecode = type(Pool).creationCode;
+ bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));
+
+ //TODO: put the salt
+
+ assembly {
+ poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)
+ }
+
+ Pool(poolAddress).init(tokenA, tokenB);
+
+ getPairs[token0][token1] = poolAddress;
+ getPairs[token1][token0] = poolAddress;
+ allPairs.push(poolAddress);
+
+ emit PoolCreated(token0, token1, poolAddress);
+ }
+
+ function getTokenPairs(
+ address _tokenA,
+ address _tokenB
+ ) external view returns (address) {
+ return getPairs[_tokenA][_tokenB];
+ }
+
+ function setFeeReceiver(address _feeReceiver) external {
+ checkIfSetter();
+
+ feeReceiver = _feeReceiver;
+ }
+
+ function addToFeeReceiverSetter(address _feeReceiverSetter) external {
+ checkIfSetter();
+
+ feeReceiverSetter[_feeReceiverSetter] = true;
+ }
+
+ function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {
+ checkIfSetter();
+
+ feeReceiverSetter[_feeReceiverSetter] = false;
+ }
+
+ function checkIfSetter() internal view {
+ bool ifSetter = feeReceiverSetter[msg.sender];
+ if (!ifSetter) revert PoolFactory__NotSetter();
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/LiquidityProvider.sol b/Core uniswap/contracts/core/LiquidityProvider.sol
new file mode 100644
index 00000000..72e9f6e4
--- /dev/null
+++ b/Core uniswap/contracts/core/LiquidityProvider.sol
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+// import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
+import "./interfaces/IFactory.sol";
+import "./interfaces/IPool.sol";
+import "./interfaces/IWCore.sol";
+import "./libraries/Library.sol";
+
+error LiquidityProvider__InsufficientAmount();
+error LiquidityProvider__InsufficientOutputAmount();
+error LiquidityProvider__CoreTransferFailed();
+error LiquidityProvider__CoreTransferFailed();
+
+contract LiquidityProvider {
+ address private immutable factoryAddress;
+ address private immutable WCORE;
+
+ constructor(address _factoryAddress, address _WCore) {
+ factoryAddress = _factoryAddress;
+ WCore = _WCore;
+ }
+
+ function _addLiquidity(
+ address _tokenA,
+ address _tokenB,
+ uint256 amountOfTokenADesired,
+ uint256 amountOfTokenBDesired,
+ uint256 minTokenA,
+ uint256 minTokenB
+ ) internal returns (uint256 amountA, uint256 amountB) {
+ address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);
+ if (pair == address(0))
+ pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);
+
+ (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();
+
+ if (reserveA == 0 && reserveB == 0) {
+ (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);
+ } else {
+ uint256 optimalAmountOfTokenB = quote(
+ amountOfTokenADesired,
+ reserveA,
+ reserveB
+ );
+ if (optimalAmountOfTokenB <= amountOfTokenBDesired) {
+ if (optimalAmountOfTokenB < minTokenB)
+ revert LiquidityProvider__InsufficientAmount();
+ (amountA, amountB) = (
+ amountOfTokenADesired,
+ optimalAmountOfTokenB
+ );
+ } else {
+ uint256 amountAOptimal = quote(
+ amountOfTokenBDesired,
+ reserveB,
+ reserveA
+ );
+ assert(amountAOptimal <= amountOfTokenADesired);
+ if (amountAOptimal < minTokenA)
+ revert LiquidityProvider__InsufficientAmount();
+ (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);
+ }
+ }
+ }
+
+ function addLiquidity(
+ address tokenA,
+ address tokenB,
+ uint256 amountOfTokenADesired,
+ uint256 amountOfTokenBDesired,
+ uint256 minTokenA,
+ uint256 minTokenB
+ ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {
+ (amountA, amountB) = _addLiquidity(
+ tokenA,
+ tokenB,
+ amountOfTokenADesired,
+ amountOfTokenBDesired,
+ minTokenA,
+ minTokenB
+ );
+ address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);
+ IERC20(tokenA).transferFrom(msg.sender, pair, amountA);
+ IERC20(tokenB).transferFrom(msg.sender, pair, amountB);
+ liquidity = IPool(pair).mint(msg.sender);
+ }
+
+ // function addLiquidityCore(
+ // address tokenA
+ // ) external returns (uint256 amountA, uint256 amountCore, uint256 liquidity) {
+ // (amountA, amountCore) = _addLiquidity();
+ // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WCore);
+ // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);
+ // IWCore(WCore).deposit{value: amountCore}();
+ // assert(IWCore(WCore).transfer(pair, amountCore));
+ // liquidity = IPool(pair).mint(msg.sender);
+
+ // if (msg.value > amountCore)
+ // (bool success, ) = msg.sender.call{value: value}("");
+ // if (!success) revert LiquidityProvider__CoreTransferFailed();
+ // }
+
+ // TODO: Remove liquidity & liquidityCore
+
+ // Swapppp
+
+ function _swap(
+ uint256[] memory amounts,
+ address[] memory path,
+ address _pair,
+ address _to
+ ) internal {
+ for (uint i; i < path.length - 1; i++) {
+ (address input, address output) = (path[i], path[i + 1]);
+ (address token0, ) = DefiLibrary.sortTokens(input, output);
+ uint256 amountOut = amounts[i + 1];
+ (uint256 amount0Out, uint256 amount1Out) = input == token0
+ ? (amountOut, uint256(0))
+ : (uint256(0), amountOut);
+ /**TODO: In case of multiple hops */
+ IPool(_pair).swap(amountOut, amounts[i], _to);
+ }
+ }
+
+ function swapExactTokensForTokens(
+ uint amountIn,
+ uint amountOutMin,
+ address[] calldata path
+ )
+ external
+ returns (
+ /**address to*/
+ uint[] memory amounts
+ )
+ {
+ address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);
+
+ amounts = getAmountsOut(pair, amountIn, path);
+ if (amounts[amounts.length - 1] < amountOutMin)
+ revert LiquidityProvider__InsufficientOutputAmount();
+
+ IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);
+ _swap(amounts, path, pair, msg.sender);
+ }
+
+ function quote(
+ uint amountA,
+ uint reserveA,
+ uint reserveB
+ ) internal pure returns (uint amountB) {
+ require(amountA > 0, "insufficient input");
+ require(
+ reserveA > 0 && reserveB > 0,
+ "insufficient liquidity"
+ );
+ amountB = (amountA * reserveB) / reserveA;
+ }
+
+ // function getAmountsOut() public view returns (uint256) {}
+
+ function getAmountsOut(
+ address pair,
+ uint amountIn,
+ address[] memory path
+ ) public view returns (uint[] memory amounts) {
+ require(path.length >= 2, "invalid number of array");
+ amounts = new uint[](path.length);
+ amounts[0] = amountIn;
+ for (uint i; i < path.length - 1; i++) {
+ (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();
+ amounts[i + 1] = DefiLibrary.getAmountOut(
+ amounts[i],
+ reserveIn,
+ reserveOut
+ );
+ }
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/Math.sol b/Core uniswap/contracts/core/Math.sol
new file mode 100644
index 00000000..205d14cd
--- /dev/null
+++ b/Core uniswap/contracts/core/Math.sol
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+// a library for performing various math operations
+
+library Math {
+ function min(uint x, uint y) internal pure returns (uint z) {
+ z = x < y ? x : y;
+ }
+
+ // babylonian method
+ function sqrt(uint y) internal pure returns (uint z) {
+ if (y > 3) {
+ z = y;
+ uint x = y / 2 + 1;
+ while (x < z) {
+ z = x;
+ x = (y / x + x) / 2;
+ }
+ } else if (y != 0) {
+ z = 1;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/Pool.sol b/Core uniswap/contracts/core/Pool.sol
new file mode 100644
index 00000000..b15a27c1
--- /dev/null
+++ b/Core uniswap/contracts/core/Pool.sol
@@ -0,0 +1,130 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
+import "./Math.sol";
+
+error PoolFactory__NotOwner();
+error PoolFactory__InsufficientLiquidity();
+error PoolFactory__InsufficientFunds();
+
+contract Pool is ERC20 {
+ using Math for uint256;
+
+ address private immutable factory;
+ address private tokenA;
+ address private tokenB;
+
+ uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;
+
+ uint256 private reserveA;
+ uint256 private reserveB;
+
+ uint256 private totalLpShares;
+
+ constructor() ERC20("LiquidityTokens", "LP") {
+ factory = msg.sender;
+ }
+
+ function init(address _tokenA, address _tokenB) external {
+ if (factory != msg.sender) revert PoolFactory__NotOwner();
+
+ tokenA = _tokenA;
+ tokenB = _tokenB;
+ }
+
+ function _update(uint256 _balanceA, uint256 _balanceB) private {
+ reserveA = _balanceA;
+ reserveB = _balanceB;
+ }
+
+ function mint(address _to) external returns (uint256 liquidity) {
+ (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();
+ uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));
+ uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));
+ uint256 depositOfTokenA = _balanceA - _reserveA;
+ uint256 depositOfTokenB = _balanceB - _reserveB;
+
+ uint256 _totalSupply = totalSupply();
+ if (_totalSupply == 0) {
+ liquidity =
+ Math.sqrt(depositOfTokenA * depositOfTokenB) -
+ (MINIMUM_LIQUIDITY);
+ _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained
+ } else {
+ liquidity = Math.min(
+ (depositOfTokenA * _totalSupply) / _reserveA,
+ (depositOfTokenB * _totalSupply) / _reserveB
+ );
+ }
+ if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();
+ _mint(_to, liquidity);
+ _update(_balanceA, _balanceB);
+
+ // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);
+ }
+
+ // BURN
+ function liquidateLpTokens(
+ address to
+ ) external returns (uint256 amountA, uint256 amountB) {
+ (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();
+ address _tokenA = tokenA;
+ address _tokenB = tokenB;
+ uint balanceA = IERC20(_tokenA).balanceOf(address(this));
+ uint balanceB = IERC20(_tokenB).balanceOf(address(this));
+ uint liquidity = balanceOf(to);
+
+ uint256 _totalSupply = totalSupply();
+ amountA = (liquidity * balanceA) / _totalSupply;
+ amountB = (liquidity * balanceB) / _totalSupply;
+ if (amountA <= 0 && amountB <= 0)
+ revert PoolFactory__InsufficientLiquidity();
+ _burn(address(this), liquidity);
+ IERC20(_tokenA).transfer(to, amountA);
+ IERC20(_tokenB).transfer(to, amountB);
+ balanceA = IERC20(_tokenA).balanceOf(address(this));
+ balanceB = IERC20(_tokenB).balanceOf(address(this));
+
+ _update(balanceA, balanceB);
+
+ // emit Burn(msg.sender, amount0, amountB, to);
+ }
+
+ function swap(
+ uint256 amount0Out,
+ uint256 amount1Out,
+ address to /**bytes calldata data */
+ ) external {
+ if (amount0Out <= 0 && amount1Out <= 0)
+ revert PoolFactory__InsufficientFunds();
+ (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();
+ if (amount0Out > _reserve0 || amount1Out > _reserve1)
+ revert PoolFactory__InsufficientLiquidity();
+ uint256 balanceA;
+ uint256 balanceB;
+ {
+ address _tokenA = tokenA;
+ address _tokenB = tokenB;
+ if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);
+ if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);
+ balanceA = IERC20(_tokenA).balanceOf(address(this));
+ balanceB = IERC20(_tokenB).balanceOf(address(this));
+ }
+
+ _update(balanceA, balanceB);
+ }
+
+ function getTokenReserves() public view returns (uint256, uint256) {
+ return (reserveA, reserveB);
+ }
+
+ // force reserves to match balances
+ function sync() external {
+ _update(
+ IERC20(tokenA).balanceOf(address(this)),
+ IERC20(tokenB).balanceOf(address(this))
+ );
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/interfaces/IFactory.sol b/Core uniswap/contracts/core/interfaces/IFactory.sol
new file mode 100644
index 00000000..74bb0739
--- /dev/null
+++ b/Core uniswap/contracts/core/interfaces/IFactory.sol
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+interface IFactory {
+ function getTokenPairs(
+ address tokenA,
+ address tokenB
+ ) external returns (address);
+
+ function createPool(
+ address tokenA,
+ address tokenB
+ ) external returns (address poolPair);
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/interfaces/IPool.sol b/Core uniswap/contracts/core/interfaces/IPool.sol
new file mode 100644
index 00000000..90c00996
--- /dev/null
+++ b/Core uniswap/contracts/core/interfaces/IPool.sol
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+interface IPool {
+ // event PairCreated(address indexed token0, address indexed token1, address pair, uint);
+
+ function init(address _tokenA, address _tokenB) external;
+
+ function mint(address _to) external returns (uint256);
+
+ function liquidateLpTokens(
+ address to
+ ) external returns (uint256 amountA, uint256 amountB);
+
+ function getTokenReserves() external view returns (uint256, uint256);
+
+ function swap(
+ uint256 amount0Out,
+ uint256 amount1Out,
+ address to /**bytes calldata data */
+ ) external;
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/interfaces/IWCore.sol b/Core uniswap/contracts/core/interfaces/IWCore.sol
new file mode 100644
index 00000000..7be25597
--- /dev/null
+++ b/Core uniswap/contracts/core/interfaces/IWCore.sol
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+interface IWCore {
+ function deposit() external payable;
+
+ function transfer(address to, uint value) external returns (bool);
+
+ function withdraw(uint) external;
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/libraries/Library.sol b/Core uniswap/contracts/core/libraries/Library.sol
new file mode 100644
index 00000000..30319dbf
--- /dev/null
+++ b/Core uniswap/contracts/core/libraries/Library.sol
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.9;
+
+error PoolFactory__IdenticalAddress();
+error PoolFactory__ZeroAddress();
+
+library DefiLibrary {
+ // returns sorted token addresses, used to handle return values from pairs sorted in this order
+ function sortTokens(
+ address tokenA,
+ address tokenB
+ ) internal pure returns (address token0, address token1) {
+ if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();
+ (token0, token1) = tokenA < tokenB
+ ? (tokenA, tokenB)
+ : (tokenB, tokenA);
+ // since tokenA is the smaller address we can check if its == address(0);
+ if (token0 == address(0)) revert PoolFactory__ZeroAddress();
+ }
+
+ // performs chained getAmountOut calculations on any number of pairs
+ // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset
+ function getAmountOut(
+ uint amountIn,
+ uint reserveIn,
+ uint reserveOut
+ ) internal pure returns (uint amountOut) {
+ require(amountIn > 0, "insufficient input");
+ require(
+ reserveIn > 0 && reserveOut > 0,
+ "insufficient liquidity"
+ );
+ uint amountInWithFee = amountIn * 997;
+ uint numerator = amountInWithFee * reserveOut;
+ uint denominator = (reserveIn * 1000) + (amountInWithFee);
+ amountOut = numerator / denominator;
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol b/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol
new file mode 100644
index 00000000..8f057f9b
--- /dev/null
+++ b/Core uniswap/contracts/core/wrapped-native-token/Apple.Token.sol
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.20;
+
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+
+contract AppleToken is ERC20 {
+ constructor() ERC20("Apple", "APT") {}
+
+ function mint(address _to, uint256 amount) public {
+ _mint(_to, amount);
+ }
+
+ // TODO: transfer to burn
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol b/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol
new file mode 100644
index 00000000..885ff6e6
--- /dev/null
+++ b/Core uniswap/contracts/core/wrapped-native-token/CherryToken.sol
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.20;
+
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+
+contract CherryToken is ERC20 {
+ constructor() ERC20("Cherry", "CHT") {}
+
+ function mint(address _to, uint256 amount) public {
+ _mint(_to, amount);
+ }
+
+ // TODO: transfer to burn
+}
\ No newline at end of file
diff --git a/Core uniswap/contracts/core/wrapped-native-token/WCore.sol b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol
new file mode 100644
index 00000000..c2e50b2e
--- /dev/null
+++ b/Core uniswap/contracts/core/wrapped-native-token/WCore.sol
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.20;
+
+import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
+
+contract WrappedCoreToken is ERC20 {
+ constructor() ERC20("WrappedCore", "WCORE") {}
+
+ // function deposit(uint256 amount) public payable {
+ // _mint(msg.sender, amount);
+ // }
+
+ function mint(address _to, uint256 amount) public {
+ _mint(_to, amount);
+ }
+
+ // TODO: transfer to burn
+}
\ No newline at end of file
diff --git a/Core uniswap/hardhat.config.js b/Core uniswap/hardhat.config.js
new file mode 100644
index 00000000..e328174d
--- /dev/null
+++ b/Core uniswap/hardhat.config.js
@@ -0,0 +1,69 @@
+require("@nomicfoundation/hardhat-toolbox");
+require("dotenv").config();
+
+/** @type import('hardhat/config').HardhatUserConfig */
+
+const SEPOLIA_RPC_URL = process.env.SEPOLIA_RPC_URL;
+const PRIVATE_KEY = process.env.PRIVATE_KEY;
+
+const CORE_RPC_URL = process.env.CORE_RPC_URL;
+
+module.exports = {
+ solidity: {
+ compilers: [
+ {
+ version: '0.8.9',
+ settings: {
+ evmVersion: 'paris',
+ optimizer: {
+ enabled: true,
+ runs: 200,
+ },
+ },
+ },
+ { version: "0.8.19", settings: {
+ evmVersion: 'paris',
+ optimizer: {
+ enabled: true,
+ runs: 200,
+ },
+ }, },
+ { version: "0.8.20", settings: {
+ evmVersion: 'paris',
+ optimizer: {
+ enabled: true,
+ runs: 200,
+ },
+ }, },
+ { version: "0.7.6" },
+ { version: "0.5.16" },
+ { version: "0.6.6" },
+ ],
+ },
+
+ networks: {
+ localhost: {
+ url: "http://127.0.0.1:8545/",
+ // accounts: Thanks hardhat!
+ chainId: 31337,
+ allowUnlimitedContractSize: true,
+ },
+ sepolia: {
+ url: SEPOLIA_RPC_URL,
+ accounts: [PRIVATE_KEY],
+ chainId: 11155111,
+ blockConfirmations: 2,
+ },
+ core: {
+ url: 'https://rpc.test.btcs.network',
+ accounts: [PRIVATE_KEY],
+ chainId: 1115,
+ },
+ },
+
+ namedAccounts: {
+ deployer: {
+ default: 0,
+ },
+ },
+};
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json
new file mode 100644
index 00000000..44fecd38
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json
new file mode 100644
index 00000000..a4d5abd0
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/CherryTokenModule#CherryToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "CherryToken",
+ "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json
new file mode 100644
index 00000000..44fecd38
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json
new file mode 100644
index 00000000..016ad5d9
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/artifacts/WrappedEduTokenMod#WrappedEduToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "WrappedEduToken",
+ "sourceName": "contracts/core/wrapped-native-token/WEdu.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json b/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json
new file mode 100644
index 00000000..39080d8c
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/build-info/6919de14a125c32fee1b7b138baa53da.json
@@ -0,0 +1,79796 @@
+{
+ "id": "6919de14a125c32fee1b7b138baa53da",
+ "_format": "hh-sol-build-info-1",
+ "solcVersion": "0.8.20",
+ "solcLongVersion": "0.8.20+commit.a1b79de6",
+ "input": {
+ "language": "Solidity",
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"
+ },
+ "contracts/core/Factory.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}"
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}"
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}"
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}"
+ },
+ "contracts/core/libraries/Library.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}"
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}"
+ },
+ "contracts/core/Math.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}"
+ },
+ "contracts/core/Pool.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}"
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n // function deposit(uint256 amount) public payable {\r\n // _mint(msg.sender, amount);\r\n // }\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ }
+ },
+ "settings": {
+ "evmVersion": "paris",
+ "optimizer": {
+ "enabled": false,
+ "runs": 200
+ },
+ "outputSelection": {
+ "*": {
+ "*": [
+ "abi",
+ "evm.bytecode",
+ "evm.deployedBytecode",
+ "evm.methodIdentifiers",
+ "metadata"
+ ],
+ "": [
+ "ast"
+ ]
+ }
+ }
+ }
+ },
+ "output": {
+ "errors": [
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 2397,
+ "file": "contracts/core/Pool.sol",
+ "start": 2380
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 2416,
+ "file": "contracts/core/Pool.sol",
+ "start": 2399
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 4393,
+ "file": "contracts/core/LiquidityProvider.sol",
+ "start": 4375
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 4413,
+ "file": "contracts/core/LiquidityProvider.sol",
+ "start": 4395
+ },
+ "type": "Warning"
+ }
+ ],
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "exportedSymbols": {
+ "IERC1155Errors": [
+ 136
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC721Errors": [
+ 89
+ ]
+ },
+ "id": 137,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "112:24:0"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 2,
+ "nodeType": "StructuredDocumentation",
+ "src": "138:141:0",
+ "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 41,
+ "linearizedBaseContracts": [
+ 41
+ ],
+ "name": "IERC20Errors",
+ "nameLocation": "290:12:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 3,
+ "nodeType": "StructuredDocumentation",
+ "src": "309:309:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "e450d38c",
+ "id": 11,
+ "name": "ERC20InsufficientBalance",
+ "nameLocation": "629:24:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "662:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "654:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "654:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "678:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "670:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "670:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "695:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "687:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "687:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "653:49:0"
+ },
+ "src": "623:80:0"
+ },
+ {
+ "documentation": {
+ "id": 12,
+ "nodeType": "StructuredDocumentation",
+ "src": "709:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "96c6fd1e",
+ "id": 16,
+ "name": "ERC20InvalidSender",
+ "nameLocation": "872:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 15,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "899:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 16,
+ "src": "891:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 13,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "891:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "890:16:0"
+ },
+ "src": "866:41:0"
+ },
+ {
+ "documentation": {
+ "id": 17,
+ "nodeType": "StructuredDocumentation",
+ "src": "913:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "ec442f05",
+ "id": 21,
+ "name": "ERC20InvalidReceiver",
+ "nameLocation": "1083:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 20,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 19,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "1112:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 21,
+ "src": "1104:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 18,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1104:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1103:18:0"
+ },
+ "src": "1077:45:0"
+ },
+ {
+ "documentation": {
+ "id": 22,
+ "nodeType": "StructuredDocumentation",
+ "src": "1128:345:0",
+ "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "fb8f41b2",
+ "id": 30,
+ "name": "ERC20InsufficientAllowance",
+ "nameLocation": "1484:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 29,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 24,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1519:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1511:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 23,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1511:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 26,
+ "mutability": "mutable",
+ "name": "allowance",
+ "nameLocation": "1536:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1528:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 25,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1528:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 28,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "1555:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1547:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 27,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1547:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1510:52:0"
+ },
+ "src": "1478:85:0"
+ },
+ {
+ "documentation": {
+ "id": 31,
+ "nodeType": "StructuredDocumentation",
+ "src": "1569:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "e602df05",
+ "id": 35,
+ "name": "ERC20InvalidApprover",
+ "nameLocation": "1754:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 34,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 33,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "1783:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 35,
+ "src": "1775:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 32,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1775:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1774:18:0"
+ },
+ "src": "1748:45:0"
+ },
+ {
+ "documentation": {
+ "id": 36,
+ "nodeType": "StructuredDocumentation",
+ "src": "1799:195:0",
+ "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "94280d62",
+ "id": 40,
+ "name": "ERC20InvalidSpender",
+ "nameLocation": "2005:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 39,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 38,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2033:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 40,
+ "src": "2025:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 37,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2025:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2024:17:0"
+ },
+ "src": "1999:43:0"
+ }
+ ],
+ "scope": 137,
+ "src": "280:1764:0",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC721Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 42,
+ "nodeType": "StructuredDocumentation",
+ "src": "2046:143:0",
+ "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 89,
+ "linearizedBaseContracts": [
+ 89
+ ],
+ "name": "IERC721Errors",
+ "nameLocation": "2200:13:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 43,
+ "nodeType": "StructuredDocumentation",
+ "src": "2220:219:0",
+ "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "89c62b64",
+ "id": 47,
+ "name": "ERC721InvalidOwner",
+ "nameLocation": "2450:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 46,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 45,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "2477:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 47,
+ "src": "2469:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 44,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2469:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2468:15:0"
+ },
+ "src": "2444:40:0"
+ },
+ {
+ "documentation": {
+ "id": 48,
+ "nodeType": "StructuredDocumentation",
+ "src": "2490:132:0",
+ "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "7e273289",
+ "id": 52,
+ "name": "ERC721NonexistentToken",
+ "nameLocation": "2633:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 51,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 50,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2664:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 52,
+ "src": "2656:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 49,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2656:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2655:17:0"
+ },
+ "src": "2627:46:0"
+ },
+ {
+ "documentation": {
+ "id": 53,
+ "nodeType": "StructuredDocumentation",
+ "src": "2679:289:0",
+ "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "64283d7b",
+ "id": 61,
+ "name": "ERC721IncorrectOwner",
+ "nameLocation": "2979:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 60,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 55,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3008:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3000:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 54,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3000:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 57,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3024:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3016:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 56,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3016:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 59,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3041:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3033:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 58,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3033:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2999:48:0"
+ },
+ "src": "2973:75:0"
+ },
+ {
+ "documentation": {
+ "id": 62,
+ "nodeType": "StructuredDocumentation",
+ "src": "3054:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "73c6ac6e",
+ "id": 66,
+ "name": "ERC721InvalidSender",
+ "nameLocation": "3217:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 65,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 64,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3245:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 66,
+ "src": "3237:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 63,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3237:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3236:16:0"
+ },
+ "src": "3211:42:0"
+ },
+ {
+ "documentation": {
+ "id": 67,
+ "nodeType": "StructuredDocumentation",
+ "src": "3259:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "64a0ae92",
+ "id": 71,
+ "name": "ERC721InvalidReceiver",
+ "nameLocation": "3429:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 70,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 69,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "3459:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 71,
+ "src": "3451:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 68,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3451:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3450:18:0"
+ },
+ "src": "3423:46:0"
+ },
+ {
+ "documentation": {
+ "id": 72,
+ "nodeType": "StructuredDocumentation",
+ "src": "3475:247:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "177e802f",
+ "id": 78,
+ "name": "ERC721InsufficientApproval",
+ "nameLocation": "3733:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 77,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 74,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "3768:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3760:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 73,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3760:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 76,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3786:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3778:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 75,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3778:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3759:35:0"
+ },
+ "src": "3727:68:0"
+ },
+ {
+ "documentation": {
+ "id": 79,
+ "nodeType": "StructuredDocumentation",
+ "src": "3801:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "a9fbf51f",
+ "id": 83,
+ "name": "ERC721InvalidApprover",
+ "nameLocation": "3986:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 82,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 81,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "4016:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 83,
+ "src": "4008:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 80,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4008:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4007:18:0"
+ },
+ "src": "3980:46:0"
+ },
+ {
+ "documentation": {
+ "id": 84,
+ "nodeType": "StructuredDocumentation",
+ "src": "4032:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "5b08ba18",
+ "id": 88,
+ "name": "ERC721InvalidOperator",
+ "nameLocation": "4240:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 87,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 86,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "4270:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 88,
+ "src": "4262:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 85,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4262:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4261:18:0"
+ },
+ "src": "4234:46:0"
+ }
+ ],
+ "scope": 137,
+ "src": "2190:2092:0",
+ "usedErrors": [
+ 47,
+ 52,
+ 61,
+ 66,
+ 71,
+ 78,
+ 83,
+ 88
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC1155Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 90,
+ "nodeType": "StructuredDocumentation",
+ "src": "4284:145:0",
+ "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 136,
+ "linearizedBaseContracts": [
+ 136
+ ],
+ "name": "IERC1155Errors",
+ "nameLocation": "4440:14:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 91,
+ "nodeType": "StructuredDocumentation",
+ "src": "4461:361:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "03dee4c5",
+ "id": 101,
+ "name": "ERC1155InsufficientBalance",
+ "nameLocation": "4833:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 100,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 93,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "4868:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4860:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 92,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4860:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 95,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "4884:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4876:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 94,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4876:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 97,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "4901:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4893:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 96,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4893:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 99,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4917:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4909:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 98,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4909:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4859:66:0"
+ },
+ "src": "4827:99:0"
+ },
+ {
+ "documentation": {
+ "id": 102,
+ "nodeType": "StructuredDocumentation",
+ "src": "4932:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "01a83514",
+ "id": 106,
+ "name": "ERC1155InvalidSender",
+ "nameLocation": "5095:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 105,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 104,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "5124:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "5116:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 103,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5116:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5115:16:0"
+ },
+ "src": "5089:43:0"
+ },
+ {
+ "documentation": {
+ "id": 107,
+ "nodeType": "StructuredDocumentation",
+ "src": "5138:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "57f447ce",
+ "id": 111,
+ "name": "ERC1155InvalidReceiver",
+ "nameLocation": "5308:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 109,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "5339:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 111,
+ "src": "5331:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 108,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5331:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5330:18:0"
+ },
+ "src": "5302:47:0"
+ },
+ {
+ "documentation": {
+ "id": 112,
+ "nodeType": "StructuredDocumentation",
+ "src": "5355:256:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "e237d922",
+ "id": 118,
+ "name": "ERC1155MissingApprovalForAll",
+ "nameLocation": "5622:28:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 117,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 114,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "5659:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5651:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 113,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5651:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 116,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "5677:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5669:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5669:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5650:33:0"
+ },
+ "src": "5616:68:0"
+ },
+ {
+ "documentation": {
+ "id": 119,
+ "nodeType": "StructuredDocumentation",
+ "src": "5690:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "3e31884e",
+ "id": 123,
+ "name": "ERC1155InvalidApprover",
+ "nameLocation": "5875:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 121,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "5906:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 123,
+ "src": "5898:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 120,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5898:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5897:18:0"
+ },
+ "src": "5869:47:0"
+ },
+ {
+ "documentation": {
+ "id": 124,
+ "nodeType": "StructuredDocumentation",
+ "src": "5922:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "ced3e100",
+ "id": 128,
+ "name": "ERC1155InvalidOperator",
+ "nameLocation": "6130:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 127,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 126,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "6161:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 128,
+ "src": "6153:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 125,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6153:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6152:18:0"
+ },
+ "src": "6124:47:0"
+ },
+ {
+ "documentation": {
+ "id": 129,
+ "nodeType": "StructuredDocumentation",
+ "src": "6177:280:0",
+ "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"
+ },
+ "errorSelector": "5b059991",
+ "id": 135,
+ "name": "ERC1155InvalidArrayLength",
+ "nameLocation": "6468:25:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 134,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 131,
+ "mutability": "mutable",
+ "name": "idsLength",
+ "nameLocation": "6502:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6494:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 130,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6494:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 133,
+ "mutability": "mutable",
+ "name": "valuesLength",
+ "nameLocation": "6521:12:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6513:20:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6513:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6493:41:0"
+ },
+ "src": "6462:73:0"
+ }
+ ],
+ "scope": 137,
+ "src": "4430:2107:0",
+ "usedErrors": [
+ 101,
+ 106,
+ 111,
+ 118,
+ 123,
+ 128,
+ 135
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "112:6426:0"
+ },
+ "id": 0
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 652,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 138,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "105:24:1"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "./IERC20.sol",
+ "id": 140,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 730,
+ "src": "131:36:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 139,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "139:6:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "file": "./extensions/IERC20Metadata.sol",
+ "id": 142,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 756,
+ "src": "168:63:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 141,
+ "name": "IERC20Metadata",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 755,
+ "src": "176:14:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "file": "../../utils/Context.sol",
+ "id": 144,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 786,
+ "src": "232:48:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 143,
+ "name": "Context",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 785,
+ "src": "240:7:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "file": "../../interfaces/draft-IERC6093.sol",
+ "id": 146,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 137,
+ "src": "281:65:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 145,
+ "name": "IERC20Errors",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 41,
+ "src": "289:12:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 148,
+ "name": "Context",
+ "nameLocations": [
+ "1133:7:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 785,
+ "src": "1133:7:1"
+ },
+ "id": 149,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1133:7:1"
+ },
+ {
+ "baseName": {
+ "id": 150,
+ "name": "IERC20",
+ "nameLocations": [
+ "1142:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "1142:6:1"
+ },
+ "id": 151,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1142:6:1"
+ },
+ {
+ "baseName": {
+ "id": 152,
+ "name": "IERC20Metadata",
+ "nameLocations": [
+ "1150:14:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 755,
+ "src": "1150:14:1"
+ },
+ "id": 153,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1150:14:1"
+ },
+ {
+ "baseName": {
+ "id": 154,
+ "name": "IERC20Errors",
+ "nameLocations": [
+ "1166:12:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 41,
+ "src": "1166:12:1"
+ },
+ "id": 155,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1166:12:1"
+ }
+ ],
+ "canonicalName": "ERC20",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 147,
+ "nodeType": "StructuredDocumentation",
+ "src": "348:757:1",
+ "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."
+ },
+ "fullyImplemented": true,
+ "id": 651,
+ "linearizedBaseContracts": [
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "ERC20",
+ "nameLocation": "1124:5:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 159,
+ "mutability": "mutable",
+ "name": "_balances",
+ "nameLocation": "1229:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1185:53:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "typeName": {
+ "id": 158,
+ "keyName": "account",
+ "keyNameLocation": "1201:7:1",
+ "keyType": {
+ "id": 156,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1193:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1185:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1212:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 165,
+ "mutability": "mutable",
+ "name": "_allowances",
+ "nameLocation": "1317:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1245:83:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "typeName": {
+ "id": 164,
+ "keyName": "account",
+ "keyNameLocation": "1261:7:1",
+ "keyType": {
+ "id": 160,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1253:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1245:63:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 163,
+ "keyName": "spender",
+ "keyNameLocation": "1288:7:1",
+ "keyType": {
+ "id": 161,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1280:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1272:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 162,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1299:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 167,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "1351:12:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1335:28:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 166,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1335:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 169,
+ "mutability": "mutable",
+ "name": "_name",
+ "nameLocation": "1385:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1370:20:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 168,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1370:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 171,
+ "mutability": "mutable",
+ "name": "_symbol",
+ "nameLocation": "1411:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1396:22:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 170,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1396:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 187,
+ "nodeType": "Block",
+ "src": "1657:57:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 179,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1667:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 180,
+ "name": "name_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 174,
+ "src": "1675:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1667:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 182,
+ "nodeType": "ExpressionStatement",
+ "src": "1667:13:1"
+ },
+ {
+ "expression": {
+ "id": 185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 183,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "1690:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 184,
+ "name": "symbol_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 176,
+ "src": "1700:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1690:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 186,
+ "nodeType": "ExpressionStatement",
+ "src": "1690:17:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 172,
+ "nodeType": "StructuredDocumentation",
+ "src": "1425:171:1",
+ "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."
+ },
+ "id": 188,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 177,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 174,
+ "mutability": "mutable",
+ "name": "name_",
+ "nameLocation": "1627:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1613:19:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 173,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1613:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 176,
+ "mutability": "mutable",
+ "name": "symbol_",
+ "nameLocation": "1648:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1634:21:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 175,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1634:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1612:44:1"
+ },
+ "returnParameters": {
+ "id": 178,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1657:0:1"
+ },
+ "scope": 651,
+ "src": "1601:113:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "baseFunctions": [
+ 742
+ ],
+ "body": {
+ "id": 196,
+ "nodeType": "Block",
+ "src": "1839:29:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 194,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1856:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 193,
+ "id": 195,
+ "nodeType": "Return",
+ "src": "1849:12:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 189,
+ "nodeType": "StructuredDocumentation",
+ "src": "1720:54:1",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 197,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "1788:4:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 190,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1792:2:1"
+ },
+ "returnParameters": {
+ "id": 193,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 192,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 197,
+ "src": "1824:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 191,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1824:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1823:15:1"
+ },
+ "scope": 651,
+ "src": "1779:89:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 748
+ ],
+ "body": {
+ "id": 205,
+ "nodeType": "Block",
+ "src": "2043:31:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 203,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "2060:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 202,
+ "id": 204,
+ "nodeType": "Return",
+ "src": "2053:14:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 198,
+ "nodeType": "StructuredDocumentation",
+ "src": "1874:102:1",
+ "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
+ },
+ "functionSelector": "95d89b41",
+ "id": 206,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "1990:6:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 199,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1996:2:1"
+ },
+ "returnParameters": {
+ "id": 202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 201,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 206,
+ "src": "2028:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 200,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2028:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2027:15:1"
+ },
+ "scope": 651,
+ "src": "1981:93:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 754
+ ],
+ "body": {
+ "id": 214,
+ "nodeType": "Block",
+ "src": "2763:26:1",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "3138",
+ "id": 212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2780:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18_by_1",
+ "typeString": "int_const 18"
+ },
+ "value": "18"
+ },
+ "functionReturnParameters": 211,
+ "id": 213,
+ "nodeType": "Return",
+ "src": "2773:9:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 207,
+ "nodeType": "StructuredDocumentation",
+ "src": "2080:622:1",
+ "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
+ },
+ "functionSelector": "313ce567",
+ "id": 215,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "2716:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 208,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2724:2:1"
+ },
+ "returnParameters": {
+ "id": 211,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 210,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 215,
+ "src": "2756:5:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 209,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2756:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2755:7:1"
+ },
+ "scope": 651,
+ "src": "2707:82:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 678
+ ],
+ "body": {
+ "id": 223,
+ "nodeType": "Block",
+ "src": "2910:36:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 221,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "2927:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 220,
+ "id": 222,
+ "nodeType": "Return",
+ "src": "2920:19:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 216,
+ "nodeType": "StructuredDocumentation",
+ "src": "2795:49:1",
+ "text": " @dev See {IERC20-totalSupply}."
+ },
+ "functionSelector": "18160ddd",
+ "id": 224,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "2858:11:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 217,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2869:2:1"
+ },
+ "returnParameters": {
+ "id": 220,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 219,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 224,
+ "src": "2901:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2901:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2900:9:1"
+ },
+ "scope": 651,
+ "src": "2849:97:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 686
+ ],
+ "body": {
+ "id": 236,
+ "nodeType": "Block",
+ "src": "3078:42:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 232,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "3095:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 234,
+ "indexExpression": {
+ "id": 233,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 227,
+ "src": "3105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3095:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 231,
+ "id": 235,
+ "nodeType": "Return",
+ "src": "3088:25:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 225,
+ "nodeType": "StructuredDocumentation",
+ "src": "2952:47:1",
+ "text": " @dev See {IERC20-balanceOf}."
+ },
+ "functionSelector": "70a08231",
+ "id": 237,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "3013:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 228,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 227,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "3031:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3023:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 226,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3023:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3022:17:1"
+ },
+ "returnParameters": {
+ "id": 231,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 230,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3069:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 229,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3069:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3068:9:1"
+ },
+ "scope": 651,
+ "src": "3004:116:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 696
+ ],
+ "body": {
+ "id": 260,
+ "nodeType": "Block",
+ "src": "3390:103:1",
+ "statements": [
+ {
+ "assignments": [
+ 248
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 248,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3408:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 260,
+ "src": "3400:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 247,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3400:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 251,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 249,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "3416:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3416:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3400:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 253,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 248,
+ "src": "3448:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 254,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 240,
+ "src": "3455:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 255,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 242,
+ "src": "3459:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 252,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "3438:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3438:27:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 257,
+ "nodeType": "ExpressionStatement",
+ "src": "3438:27:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3482:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 246,
+ "id": 259,
+ "nodeType": "Return",
+ "src": "3475:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 238,
+ "nodeType": "StructuredDocumentation",
+ "src": "3126:184:1",
+ "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 261,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "3324:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 243,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 240,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3341:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3333:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 239,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3333:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 242,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3353:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3345:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 241,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3345:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3332:27:1"
+ },
+ "returnParameters": {
+ "id": 246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 245,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3384:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 244,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3384:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3383:6:1"
+ },
+ "scope": 651,
+ "src": "3315:178:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 706
+ ],
+ "body": {
+ "id": 277,
+ "nodeType": "Block",
+ "src": "3640:51:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 271,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "3657:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 273,
+ "indexExpression": {
+ "id": 272,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 264,
+ "src": "3669:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 275,
+ "indexExpression": {
+ "id": 274,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 266,
+ "src": "3676:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 270,
+ "id": 276,
+ "nodeType": "Return",
+ "src": "3650:34:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 262,
+ "nodeType": "StructuredDocumentation",
+ "src": "3499:47:1",
+ "text": " @dev See {IERC20-allowance}."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 278,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "3560:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 267,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 264,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3578:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3570:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 263,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3570:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 266,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "3593:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3585:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 265,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3585:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3569:32:1"
+ },
+ "returnParameters": {
+ "id": 270,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 269,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3631:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 268,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3630:9:1"
+ },
+ "scope": 651,
+ "src": "3551:140:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 716
+ ],
+ "body": {
+ "id": 301,
+ "nodeType": "Block",
+ "src": "4077:107:1",
+ "statements": [
+ {
+ "assignments": [
+ 289
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 289,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "4095:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 301,
+ "src": "4087:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 288,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4087:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 292,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 290,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4103:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4103:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4087:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 294,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "4134:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 295,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 281,
+ "src": "4141:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 296,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 283,
+ "src": "4150:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 293,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 542,
+ "src": "4125:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4125:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 298,
+ "nodeType": "ExpressionStatement",
+ "src": "4125:31:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4173:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 287,
+ "id": 300,
+ "nodeType": "Return",
+ "src": "4166:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 279,
+ "nodeType": "StructuredDocumentation",
+ "src": "3697:296:1",
+ "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 302,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "4007:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 284,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 281,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4023:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4015:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 280,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4015:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 283,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4040:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4032:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4032:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4014:32:1"
+ },
+ "returnParameters": {
+ "id": 287,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 286,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4071:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 285,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4071:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4070:6:1"
+ },
+ "scope": 651,
+ "src": "3998:186:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 728
+ ],
+ "body": {
+ "id": 333,
+ "nodeType": "Block",
+ "src": "4869:151:1",
+ "statements": [
+ {
+ "assignments": [
+ 315
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 315,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4887:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 333,
+ "src": "4879:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 314,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4879:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 318,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 316,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4897:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4897:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4879:30:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 320,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4935:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 321,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 315,
+ "src": "4941:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 322,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4950:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 319,
+ "name": "_spendAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 650,
+ "src": "4919:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4919:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 324,
+ "nodeType": "ExpressionStatement",
+ "src": "4919:37:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 326,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4976:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 327,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 307,
+ "src": "4982:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 328,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4986:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 325,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "4966:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4966:26:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 330,
+ "nodeType": "ExpressionStatement",
+ "src": "4966:26:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5009:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 313,
+ "id": 332,
+ "nodeType": "Return",
+ "src": "5002:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 303,
+ "nodeType": "StructuredDocumentation",
+ "src": "4190:581:1",
+ "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."
+ },
+ "functionSelector": "23b872dd",
+ "id": 334,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "4785:12:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 305,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "4806:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4798:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 304,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4798:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 307,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "4820:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4812:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 306,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4812:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4832:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4824:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4824:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4797:41:1"
+ },
+ "returnParameters": {
+ "id": 313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4863:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 311,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4863:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4862:6:1"
+ },
+ "scope": 651,
+ "src": "4776:244:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 380,
+ "nodeType": "Block",
+ "src": "5462:231:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 344,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5476:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5492:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 346,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5484:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 345,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5484:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5484:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5476:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 358,
+ "nodeType": "IfStatement",
+ "src": "5472:86:1",
+ "trueBody": {
+ "id": 357,
+ "nodeType": "Block",
+ "src": "5496:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5544:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5536:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 351,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5536:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5536:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 350,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "5517:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5517:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 356,
+ "nodeType": "RevertStatement",
+ "src": "5510:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 359,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5571:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5585:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5577:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 360,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5577:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5577:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5571:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 373,
+ "nodeType": "IfStatement",
+ "src": "5567:86:1",
+ "trueBody": {
+ "id": 372,
+ "nodeType": "Block",
+ "src": "5589:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5639:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 366,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5631:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5631:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 365,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "5610:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5610:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 371,
+ "nodeType": "RevertStatement",
+ "src": "5603:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 375,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5670:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 376,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5676:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 377,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 341,
+ "src": "5680:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 374,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "5662:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5662:24:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 379,
+ "nodeType": "ExpressionStatement",
+ "src": "5662:24:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 335,
+ "nodeType": "StructuredDocumentation",
+ "src": "5026:362:1",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 381,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_transfer",
+ "nameLocation": "5402:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 342,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 337,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "5420:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5412:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 336,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5412:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 339,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "5434:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5426:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 338,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5426:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 341,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5446:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5438:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 340,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5438:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5411:41:1"
+ },
+ "returnParameters": {
+ "id": 343,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5462:0:1"
+ },
+ "scope": 651,
+ "src": "5393:300:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 457,
+ "nodeType": "Block",
+ "src": "6083:1032:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 391,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6097:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6113:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 392,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6105:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6105:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6097:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 428,
+ "nodeType": "Block",
+ "src": "6271:362:1",
+ "statements": [
+ {
+ "assignments": [
+ 403
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 403,
+ "mutability": "mutable",
+ "name": "fromBalance",
+ "nameLocation": "6293:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 428,
+ "src": "6285:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 402,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6285:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 407,
+ "initialValue": {
+ "baseExpression": {
+ "id": 404,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6307:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 406,
+ "indexExpression": {
+ "id": 405,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6317:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6307:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6285:37:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 408,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6340:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 409,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6354:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6340:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 418,
+ "nodeType": "IfStatement",
+ "src": "6336:115:1",
+ "trueBody": {
+ "id": 417,
+ "nodeType": "Block",
+ "src": "6361:90:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 412,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6411:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 413,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6417:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 414,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6430:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 411,
+ "name": "ERC20InsufficientBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11,
+ "src": "6386:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 415,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6386:50:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 416,
+ "nodeType": "RevertStatement",
+ "src": "6379:57:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 427,
+ "nodeType": "UncheckedBlock",
+ "src": "6464:159:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 419,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6571:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 421,
+ "indexExpression": {
+ "id": 420,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6581:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6571:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 422,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6589:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 423,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6603:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6589:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6571:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 426,
+ "nodeType": "ExpressionStatement",
+ "src": "6571:37:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 429,
+ "nodeType": "IfStatement",
+ "src": "6093:540:1",
+ "trueBody": {
+ "id": 401,
+ "nodeType": "Block",
+ "src": "6117:148:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 397,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6233:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 398,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6249:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6233:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 400,
+ "nodeType": "ExpressionStatement",
+ "src": "6233:21:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 430,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "6647:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6661:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 432,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6653:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 431,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6653:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6653:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6647:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 449,
+ "nodeType": "Block",
+ "src": "6862:206:1",
+ "statements": [
+ {
+ "id": 448,
+ "nodeType": "UncheckedBlock",
+ "src": "6876:182:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 442,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "7021:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 444,
+ "indexExpression": {
+ "id": 443,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7031:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "7021:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 445,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7038:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7021:22:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 447,
+ "nodeType": "ExpressionStatement",
+ "src": "7021:22:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 450,
+ "nodeType": "IfStatement",
+ "src": "6643:425:1",
+ "trueBody": {
+ "id": 441,
+ "nodeType": "Block",
+ "src": "6665:191:1",
+ "statements": [
+ {
+ "id": 440,
+ "nodeType": "UncheckedBlock",
+ "src": "6679:167:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 436,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6810:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "id": 437,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6826:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6810:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 439,
+ "nodeType": "ExpressionStatement",
+ "src": "6810:21:1"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 452,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "7092:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 453,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7098:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 454,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7102:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 451,
+ "name": "Transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 663,
+ "src": "7083:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7083:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 456,
+ "nodeType": "EmitStatement",
+ "src": "7078:30:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 382,
+ "nodeType": "StructuredDocumentation",
+ "src": "5699:304:1",
+ "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."
+ },
+ "id": 458,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_update",
+ "nameLocation": "6017:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 384,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "6033:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6025:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 383,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6025:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 386,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "6047:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6039:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 385,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6039:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 388,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6059:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6051:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 387,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6051:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6024:41:1"
+ },
+ "returnParameters": {
+ "id": 390,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6083:0:1"
+ },
+ "scope": 651,
+ "src": "6008:1107:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 490,
+ "nodeType": "Block",
+ "src": "7514:152:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 466,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7528:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 469,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7547:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7539:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 467,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7539:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7539:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "7528:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 480,
+ "nodeType": "IfStatement",
+ "src": "7524:91:1",
+ "trueBody": {
+ "id": 479,
+ "nodeType": "Block",
+ "src": "7551:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7601:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7593:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 473,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7593:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7593:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 472,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "7572:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7572:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 478,
+ "nodeType": "RevertStatement",
+ "src": "7565:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7640:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7632:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 482,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7632:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7632:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 486,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7644:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 487,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 463,
+ "src": "7653:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 481,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "7624:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 488,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7624:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 489,
+ "nodeType": "ExpressionStatement",
+ "src": "7624:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 459,
+ "nodeType": "StructuredDocumentation",
+ "src": "7121:332:1",
+ "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 491,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_mint",
+ "nameLocation": "7467:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 461,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "7481:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7473:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 460,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7473:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 463,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7498:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7490:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 462,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7490:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7472:32:1"
+ },
+ "returnParameters": {
+ "id": 465,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7514:0:1"
+ },
+ "scope": 651,
+ "src": "7458:208:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 523,
+ "nodeType": "Block",
+ "src": "8040:150:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 499,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8054:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8073:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8065:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 500,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8065:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8065:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "8054:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 513,
+ "nodeType": "IfStatement",
+ "src": "8050:89:1",
+ "trueBody": {
+ "id": 512,
+ "nodeType": "Block",
+ "src": "8077:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 508,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8125:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8117:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 506,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8117:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8117:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 505,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "8098:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8098:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 511,
+ "nodeType": "RevertStatement",
+ "src": "8091:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 515,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8156:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 518,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8173:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8165:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 516,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8165:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 519,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8165:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 520,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 496,
+ "src": "8177:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 514,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "8148:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8148:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 522,
+ "nodeType": "ExpressionStatement",
+ "src": "8148:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 492,
+ "nodeType": "StructuredDocumentation",
+ "src": "7672:307:1",
+ "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"
+ },
+ "id": 524,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_burn",
+ "nameLocation": "7993:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 497,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 494,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "8007:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "7999:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 493,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7999:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 496,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8024:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "8016:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 495,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8016:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7998:32:1"
+ },
+ "returnParameters": {
+ "id": 498,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8040:0:1"
+ },
+ "scope": 651,
+ "src": "7984:206:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 541,
+ "nodeType": "Block",
+ "src": "8800:54:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 535,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 527,
+ "src": "8819:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 536,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 529,
+ "src": "8826:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 537,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 531,
+ "src": "8835:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8842:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 534,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "8810:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8810:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 540,
+ "nodeType": "ExpressionStatement",
+ "src": "8810:37:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 525,
+ "nodeType": "StructuredDocumentation",
+ "src": "8196:525:1",
+ "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."
+ },
+ "id": 542,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "8735:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 532,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 527,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "8752:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8744:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 526,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8744:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 529,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "8767:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8759:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 528,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8759:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8784:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8776:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 530,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8776:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8743:47:1"
+ },
+ "returnParameters": {
+ "id": 533,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8800:0:1"
+ },
+ "scope": 651,
+ "src": "8726:128:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 601,
+ "nodeType": "Block",
+ "src": "9799:334:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 554,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "9813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9830:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9822:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 555,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9822:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 558,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9822:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9813:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 568,
+ "nodeType": "IfStatement",
+ "src": "9809:89:1",
+ "trueBody": {
+ "id": 567,
+ "nodeType": "Block",
+ "src": "9834:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 563,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9884:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9876:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 561,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9876:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 564,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9876:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 560,
+ "name": "ERC20InvalidApprover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 35,
+ "src": "9855:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9855:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 566,
+ "nodeType": "RevertStatement",
+ "src": "9848:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 569,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "9911:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 572,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9930:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9922:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 570,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9922:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 573,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9922:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9911:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 583,
+ "nodeType": "IfStatement",
+ "src": "9907:90:1",
+ "trueBody": {
+ "id": 582,
+ "nodeType": "Block",
+ "src": "9934:63:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9983:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9975:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 576,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9975:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9975:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 575,
+ "name": "ERC20InvalidSpender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 40,
+ "src": "9955:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9955:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 581,
+ "nodeType": "RevertStatement",
+ "src": "9948:38:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 584,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "10006:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 587,
+ "indexExpression": {
+ "id": 585,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10018:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "10006:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 588,
+ "indexExpression": {
+ "id": 586,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10025:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "10006:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 589,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10036:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10006:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 591,
+ "nodeType": "ExpressionStatement",
+ "src": "10006:35:1"
+ },
+ {
+ "condition": {
+ "id": 592,
+ "name": "emitEvent",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 551,
+ "src": "10055:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 600,
+ "nodeType": "IfStatement",
+ "src": "10051:76:1",
+ "trueBody": {
+ "id": 599,
+ "nodeType": "Block",
+ "src": "10066:61:1",
+ "statements": [
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 594,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10094:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 595,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10101:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 596,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10110:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 593,
+ "name": "Approval",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 672,
+ "src": "10085:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10085:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 598,
+ "nodeType": "EmitStatement",
+ "src": "10080:36:1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 543,
+ "nodeType": "StructuredDocumentation",
+ "src": "8860:836:1",
+ "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."
+ },
+ "id": 602,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "9710:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 552,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 545,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "9727:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9719:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 544,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9719:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 547,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "9742:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9734:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 546,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9734:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 549,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9759:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9751:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 548,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9751:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 551,
+ "mutability": "mutable",
+ "name": "emitEvent",
+ "nameLocation": "9771:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9766:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 550,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9766:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9718:63:1"
+ },
+ "returnParameters": {
+ "id": 553,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9799:0:1"
+ },
+ "scope": 651,
+ "src": "9701:432:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 649,
+ "nodeType": "Block",
+ "src": "10504:388:1",
+ "statements": [
+ {
+ "assignments": [
+ 613
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 613,
+ "mutability": "mutable",
+ "name": "currentAllowance",
+ "nameLocation": "10522:16:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 649,
+ "src": "10514:24:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 612,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10514:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 618,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 615,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10551:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 616,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10558:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 614,
+ "name": "allowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 278,
+ "src": "10541:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address,address) view returns (uint256)"
+ }
+ },
+ "id": 617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10541:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10514:52:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 619,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10580:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10605:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10605:7:1",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ }
+ ],
+ "id": 620,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10600:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10600:13:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint256",
+ "typeString": "type(uint256)"
+ }
+ },
+ "id": 624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10614:3:1",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "10600:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10580:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 648,
+ "nodeType": "IfStatement",
+ "src": "10576:310:1",
+ "trueBody": {
+ "id": 647,
+ "nodeType": "Block",
+ "src": "10619:267:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 626,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10637:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 627,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10656:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10637:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 636,
+ "nodeType": "IfStatement",
+ "src": "10633:130:1",
+ "trueBody": {
+ "id": 635,
+ "nodeType": "Block",
+ "src": "10663:100:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 630,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10715:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 631,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10724:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 632,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10742:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 629,
+ "name": "ERC20InsufficientAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 30,
+ "src": "10688:26:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10688:60:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 634,
+ "nodeType": "RevertStatement",
+ "src": "10681:67:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 646,
+ "nodeType": "UncheckedBlock",
+ "src": "10776:100:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 638,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 639,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10820:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 640,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10829:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 641,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10848:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10829:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10855:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 637,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "10804:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10804:57:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 645,
+ "nodeType": "ExpressionStatement",
+ "src": "10804:57:1"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 603,
+ "nodeType": "StructuredDocumentation",
+ "src": "10139:271:1",
+ "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."
+ },
+ "id": 650,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_spendAllowance",
+ "nameLocation": "10424:15:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 610,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 605,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "10448:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10440:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 604,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10440:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 607,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "10463:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10455:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 606,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10455:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 609,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10480:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10472:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10472:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10439:47:1"
+ },
+ "returnParameters": {
+ "id": 611,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10504:0:1"
+ },
+ "scope": 651,
+ "src": "10415:477:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 652,
+ "src": "1106:9788:1",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "105:10790:1"
+ },
+ "id": 1
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ]
+ },
+ "id": 730,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 653,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "106:24:2"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 654,
+ "nodeType": "StructuredDocumentation",
+ "src": "132:71:2",
+ "text": " @dev Interface of the ERC-20 standard as defined in the ERC."
+ },
+ "fullyImplemented": false,
+ "id": 729,
+ "linearizedBaseContracts": [
+ 729
+ ],
+ "name": "IERC20",
+ "nameLocation": "214:6:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 655,
+ "nodeType": "StructuredDocumentation",
+ "src": "227:158:2",
+ "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
+ },
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 663,
+ "name": "Transfer",
+ "nameLocation": "396:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 662,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 657,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "421:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "405:20:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 656,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "405:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 659,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "443:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "427:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 658,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "427:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 661,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "455:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "447:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 660,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "447:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "404:57:2"
+ },
+ "src": "390:72:2"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 664,
+ "nodeType": "StructuredDocumentation",
+ "src": "468:148:2",
+ "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
+ },
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 672,
+ "name": "Approval",
+ "nameLocation": "627:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 671,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 666,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "652:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "636:21:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 665,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "636:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 668,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "675:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "659:23:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 667,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "659:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 670,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "692:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "684:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "684:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "635:63:2"
+ },
+ "src": "621:78:2"
+ },
+ {
+ "documentation": {
+ "id": 673,
+ "nodeType": "StructuredDocumentation",
+ "src": "705:65:2",
+ "text": " @dev Returns the value of tokens in existence."
+ },
+ "functionSelector": "18160ddd",
+ "id": 678,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "784:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 674,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "795:2:2"
+ },
+ "returnParameters": {
+ "id": 677,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 676,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 678,
+ "src": "821:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 675,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "821:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "820:9:2"
+ },
+ "scope": 729,
+ "src": "775:55:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 679,
+ "nodeType": "StructuredDocumentation",
+ "src": "836:71:2",
+ "text": " @dev Returns the value of tokens owned by `account`."
+ },
+ "functionSelector": "70a08231",
+ "id": 686,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "921:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 682,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 681,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "939:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "931:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 680,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "931:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "930:17:2"
+ },
+ "returnParameters": {
+ "id": 685,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 684,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "971:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 683,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "971:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "970:9:2"
+ },
+ "scope": 729,
+ "src": "912:68:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 687,
+ "nodeType": "StructuredDocumentation",
+ "src": "986:213:2",
+ "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 696,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "1213:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 692,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 689,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "1230:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1222:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 688,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1222:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 691,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1242:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1234:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 690,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1234:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1221:27:2"
+ },
+ "returnParameters": {
+ "id": 695,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 694,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1267:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 693,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1267:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1266:6:2"
+ },
+ "scope": 729,
+ "src": "1204:69:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 697,
+ "nodeType": "StructuredDocumentation",
+ "src": "1279:264:2",
+ "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 706,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "1557:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 699,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "1575:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1567:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 698,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1567:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 701,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1590:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1582:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 700,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1582:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1566:32:2"
+ },
+ "returnParameters": {
+ "id": 705,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 704,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1622:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1622:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1621:9:2"
+ },
+ "scope": 729,
+ "src": "1548:83:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 707,
+ "nodeType": "StructuredDocumentation",
+ "src": "1637:667:2",
+ "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 716,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "2318:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 709,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2334:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2326:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 708,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2326:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 711,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2351:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2343:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 710,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2343:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2325:32:2"
+ },
+ "returnParameters": {
+ "id": 715,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 714,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2376:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 713,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2376:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2375:6:2"
+ },
+ "scope": 729,
+ "src": "2309:73:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 717,
+ "nodeType": "StructuredDocumentation",
+ "src": "2388:297:2",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "23b872dd",
+ "id": 728,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "2699:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 724,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 719,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "2720:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2712:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 718,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2712:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 721,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "2734:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2726:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 720,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2726:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 723,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2746:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2738:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 722,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2738:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2711:41:2"
+ },
+ "returnParameters": {
+ "id": 727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 726,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2771:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 725,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2771:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2770:6:2"
+ },
+ "scope": 729,
+ "src": "2690:87:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 730,
+ "src": "204:2575:2",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "106:2674:2"
+ },
+ "id": 2
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 756,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 731,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "125:24:3"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "../IERC20.sol",
+ "id": 733,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 756,
+ "sourceUnit": 730,
+ "src": "151:37:3",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 732,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "159:6:3",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 735,
+ "name": "IERC20",
+ "nameLocations": [
+ "306:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "306:6:3"
+ },
+ "id": 736,
+ "nodeType": "InheritanceSpecifier",
+ "src": "306:6:3"
+ }
+ ],
+ "canonicalName": "IERC20Metadata",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 734,
+ "nodeType": "StructuredDocumentation",
+ "src": "190:87:3",
+ "text": " @dev Interface for the optional metadata functions from the ERC-20 standard."
+ },
+ "fullyImplemented": false,
+ "id": 755,
+ "linearizedBaseContracts": [
+ 755,
+ 729
+ ],
+ "name": "IERC20Metadata",
+ "nameLocation": "288:14:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 737,
+ "nodeType": "StructuredDocumentation",
+ "src": "319:54:3",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 742,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "387:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 738,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "391:2:3"
+ },
+ "returnParameters": {
+ "id": 741,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 740,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 742,
+ "src": "417:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 739,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "417:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "416:15:3"
+ },
+ "scope": 755,
+ "src": "378:54:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 743,
+ "nodeType": "StructuredDocumentation",
+ "src": "438:56:3",
+ "text": " @dev Returns the symbol of the token."
+ },
+ "functionSelector": "95d89b41",
+ "id": 748,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "508:6:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 744,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "514:2:3"
+ },
+ "returnParameters": {
+ "id": 747,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 746,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 748,
+ "src": "540:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 745,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "539:15:3"
+ },
+ "scope": 755,
+ "src": "499:56:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 749,
+ "nodeType": "StructuredDocumentation",
+ "src": "561:65:3",
+ "text": " @dev Returns the decimals places of the token."
+ },
+ "functionSelector": "313ce567",
+ "id": 754,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "640:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "648:2:3"
+ },
+ "returnParameters": {
+ "id": 753,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 752,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 754,
+ "src": "674:5:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 751,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "674:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "673:7:3"
+ },
+ "scope": 755,
+ "src": "631:50:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 756,
+ "src": "278:405:3",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "125:559:3"
+ },
+ "id": 3
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ]
+ },
+ "id": 786,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 757,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "101:24:4"
+ },
+ {
+ "abstract": true,
+ "baseContracts": [],
+ "canonicalName": "Context",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 758,
+ "nodeType": "StructuredDocumentation",
+ "src": "127:496:4",
+ "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
+ },
+ "fullyImplemented": true,
+ "id": 785,
+ "linearizedBaseContracts": [
+ 785
+ ],
+ "name": "Context",
+ "nameLocation": "642:7:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 766,
+ "nodeType": "Block",
+ "src": "718:34:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 763,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "735:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "739:6:4",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "735:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 762,
+ "id": 765,
+ "nodeType": "Return",
+ "src": "728:17:4"
+ }
+ ]
+ },
+ "id": 767,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgSender",
+ "nameLocation": "665:10:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 759,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "675:2:4"
+ },
+ "returnParameters": {
+ "id": 762,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 761,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 767,
+ "src": "709:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 760,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "709:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "708:9:4"
+ },
+ "scope": 785,
+ "src": "656:96:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 775,
+ "nodeType": "Block",
+ "src": "825:32:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 772,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "842:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "846:4:4",
+ "memberName": "data",
+ "nodeType": "MemberAccess",
+ "src": "842:8:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ },
+ "functionReturnParameters": 771,
+ "id": 774,
+ "nodeType": "Return",
+ "src": "835:15:4"
+ }
+ ]
+ },
+ "id": 776,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgData",
+ "nameLocation": "767:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 768,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "775:2:4"
+ },
+ "returnParameters": {
+ "id": 771,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 770,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 776,
+ "src": "809:14:4",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 769,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "809:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "808:16:4"
+ },
+ "scope": 785,
+ "src": "758:99:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 783,
+ "nodeType": "Block",
+ "src": "935:25:4",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "952:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 780,
+ "id": 782,
+ "nodeType": "Return",
+ "src": "945:8:4"
+ }
+ ]
+ },
+ "id": 784,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_contextSuffixLength",
+ "nameLocation": "872:20:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 777,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "892:2:4"
+ },
+ "returnParameters": {
+ "id": 780,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 779,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 784,
+ "src": "926:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 778,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "926:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "925:9:4"
+ },
+ "scope": 785,
+ "src": "863:97:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 786,
+ "src": "624:338:4",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "101:862:4"
+ },
+ "id": 4
+ },
+ "contracts/core/Factory.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Factory.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "IPool": [
+ 2166
+ ],
+ "Math": [
+ 1613
+ ],
+ "Pool": [
+ 2103
+ ],
+ "PoolFactory": [
+ 1019
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 791
+ ],
+ "PoolFactory__InsufficientFunds": [
+ 1624
+ ],
+ "PoolFactory__InsufficientLiquidity": [
+ 1622
+ ],
+ "PoolFactory__NotOwner": [
+ 1620
+ ],
+ "PoolFactory__NotSetter": [
+ 797
+ ],
+ "PoolFactory__PoolExists": [
+ 795
+ ],
+ "PoolFactory__ZeroAddress": [
+ 793
+ ]
+ },
+ "id": 1020,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 787,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:5"
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "file": "./interfaces/IPool.sol",
+ "id": 788,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1020,
+ "sourceUnit": 2167,
+ "src": "60:32:5",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/Pool.sol",
+ "file": "./Pool.sol",
+ "id": 789,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1020,
+ "sourceUnit": 2104,
+ "src": "94:20:5",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "4bea99d9",
+ "id": 791,
+ "name": "PoolFactory__IdenticalAddress",
+ "nameLocation": "124:29:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 790,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "153:2:5"
+ },
+ "src": "118:38:5"
+ },
+ {
+ "errorSelector": "74b959e9",
+ "id": 793,
+ "name": "PoolFactory__ZeroAddress",
+ "nameLocation": "164:24:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 792,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "188:2:5"
+ },
+ "src": "158:33:5"
+ },
+ {
+ "errorSelector": "423d7935",
+ "id": 795,
+ "name": "PoolFactory__PoolExists",
+ "nameLocation": "199:23:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 794,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "222:2:5"
+ },
+ "src": "193:32:5"
+ },
+ {
+ "errorSelector": "e9e17318",
+ "id": 797,
+ "name": "PoolFactory__NotSetter",
+ "nameLocation": "233:22:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 796,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "255:2:5"
+ },
+ "src": "227:31:5"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoolFactory",
+ "contractDependencies": [
+ 2103
+ ],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 1019,
+ "linearizedBaseContracts": [
+ 1019
+ ],
+ "name": "PoolFactory",
+ "nameLocation": "271:11:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 799,
+ "mutability": "mutable",
+ "name": "feeReceiver",
+ "nameLocation": "306:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "290:27:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 798,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "290:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 803,
+ "mutability": "mutable",
+ "name": "feeReceiverSetter",
+ "nameLocation": "357:17:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "324:50:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ },
+ "typeName": {
+ "id": 802,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 800,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "332:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "324:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 801,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "343:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 809,
+ "mutability": "mutable",
+ "name": "getPairs",
+ "nameLocation": "439:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "383:64:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ },
+ "typeName": {
+ "id": 808,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 804,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "391:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "383:47:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 807,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 805,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "410:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "402:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "421:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 812,
+ "mutability": "mutable",
+ "name": "allPairs",
+ "nameLocation": "472:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "454:26:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 810,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "454:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 811,
+ "nodeType": "ArrayTypeName",
+ "src": "454:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b",
+ "id": 820,
+ "name": "PoolCreated",
+ "nameLocation": "495:11:5",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 814,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "515:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "507:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 813,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "507:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 816,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "531:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "523:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 815,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "523:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 818,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "poolAddress",
+ "nameLocation": "547:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "539:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 817,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "539:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "506:53:5"
+ },
+ "src": "489:71:5"
+ },
+ {
+ "body": {
+ "id": 831,
+ "nodeType": "Block",
+ "src": "608:63:5",
+ "statements": [
+ {
+ "expression": {
+ "id": 829,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 825,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "619:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 827,
+ "indexExpression": {
+ "id": 826,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 822,
+ "src": "637:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "619:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "659:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "619:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 830,
+ "nodeType": "ExpressionStatement",
+ "src": "619:44:5"
+ }
+ ]
+ },
+ "id": 832,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 823,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 822,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "588:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 832,
+ "src": "580:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 821,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "580:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "579:28:5"
+ },
+ "returnParameters": {
+ "id": 824,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "608:0:5"
+ },
+ "scope": 1019,
+ "src": "568:103:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 941,
+ "nodeType": "Block",
+ "src": "795:978:5",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 841,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "810:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 842,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "820:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "810:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 847,
+ "nodeType": "IfStatement",
+ "src": "806:60:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 844,
+ "name": "PoolFactory__IdenticalAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 791,
+ "src": "835:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "835:31:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 846,
+ "nodeType": "RevertStatement",
+ "src": "828:38:5"
+ }
+ },
+ {
+ "assignments": [
+ 849,
+ 851
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 849,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "886:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "878:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 848,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "878:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 851,
+ "mutability": "mutable",
+ "name": "token1",
+ "nameLocation": "902:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "894:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 850,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 862,
+ "initialValue": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 852,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "912:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 853,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "921:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "912:15:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "id": 858,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "976:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 859,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "984:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 860,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "975:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "id": 861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "912:79:5",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 855,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "944:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 856,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "952:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 857,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "943:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "877:114:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 868,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 863,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1089:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 866,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1107:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1099:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 864,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1099:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1099:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1089:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 872,
+ "nodeType": "IfStatement",
+ "src": "1085:59:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 869,
+ "name": "PoolFactory__ZeroAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 793,
+ "src": "1118:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1118:26:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 871,
+ "nodeType": "RevertStatement",
+ "src": "1111:33:5"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 873,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1159:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 875,
+ "indexExpression": {
+ "id": 874,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1168:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1159:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 877,
+ "indexExpression": {
+ "id": 876,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1176:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1159:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1195:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1187:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 878,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1187:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1187:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1159:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 886,
+ "nodeType": "IfStatement",
+ "src": "1155:89:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 883,
+ "name": "PoolFactory__PoolExists",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 795,
+ "src": "1219:23:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1219:25:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 885,
+ "nodeType": "RevertStatement",
+ "src": "1212:32:5"
+ }
+ },
+ {
+ "assignments": [
+ 888
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 888,
+ "mutability": "mutable",
+ "name": "bytecode",
+ "nameLocation": "1270:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "1257:21:5",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 887,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1257:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 893,
+ "initialValue": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 890,
+ "name": "Pool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2103,
+ "src": "1286:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ ],
+ "id": 889,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "1281:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1281:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103",
+ "typeString": "type(contract Pool)"
+ }
+ },
+ "id": 892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1292:12:5",
+ "memberName": "creationCode",
+ "nodeType": "MemberAccess",
+ "src": "1281:23:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1257:47:5"
+ },
+ {
+ "assignments": [
+ 895
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 895,
+ "mutability": "mutable",
+ "name": "salt",
+ "nameLocation": "1323:4:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "1315:12:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 894,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1315:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 903,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 899,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "1357:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 900,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "1365:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 897,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "1340:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1344:12:5",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "1340:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1340:32:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 896,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "1330:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1330:43:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1315:58:5"
+ },
+ {
+ "AST": {
+ "nodeType": "YulBlock",
+ "src": "1427:93:5",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1442:67:5",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1465:1:5",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "name": "bytecode",
+ "nodeType": "YulIdentifier",
+ "src": "1472:8:5"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1482:2:5",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1468:3:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1468:17:5"
+ },
+ {
+ "arguments": [
+ {
+ "name": "bytecode",
+ "nodeType": "YulIdentifier",
+ "src": "1493:8:5"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1487:5:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1487:15:5"
+ },
+ {
+ "name": "salt",
+ "nodeType": "YulIdentifier",
+ "src": "1504:4:5"
+ }
+ ],
+ "functionName": {
+ "name": "create2",
+ "nodeType": "YulIdentifier",
+ "src": "1457:7:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1457:52:5"
+ },
+ "variableNames": [
+ {
+ "name": "poolAddress",
+ "nodeType": "YulIdentifier",
+ "src": "1442:11:5"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 888,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1472:8:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 888,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1493:8:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 839,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1442:11:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 895,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1504:4:5",
+ "valueSize": 1
+ }
+ ],
+ "id": 904,
+ "nodeType": "InlineAssembly",
+ "src": "1418:102:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 909,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "1555:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 910,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "1563:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 906,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1537:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 905,
+ "name": "Pool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2103,
+ "src": "1532:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ },
+ "id": 907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1532:17:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ },
+ "id": 908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1550:4:5",
+ "memberName": "init",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1683,
+ "src": "1532:22:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address) external"
+ }
+ },
+ "id": 911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1532:38:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 912,
+ "nodeType": "ExpressionStatement",
+ "src": "1532:38:5"
+ },
+ {
+ "expression": {
+ "id": 919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 913,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1583:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 916,
+ "indexExpression": {
+ "id": 914,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1592:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1583:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 917,
+ "indexExpression": {
+ "id": 915,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1600:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1583:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 918,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1610:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1583:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 920,
+ "nodeType": "ExpressionStatement",
+ "src": "1583:38:5"
+ },
+ {
+ "expression": {
+ "id": 927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 921,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1632:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 924,
+ "indexExpression": {
+ "id": 922,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1641:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1632:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 925,
+ "indexExpression": {
+ "id": 923,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1649:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1632:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 926,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1659:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1632:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 928,
+ "nodeType": "ExpressionStatement",
+ "src": "1632:38:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 932,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1695:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 929,
+ "name": "allPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 812,
+ "src": "1681:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage",
+ "typeString": "address[] storage ref"
+ }
+ },
+ "id": 931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1690:4:5",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "1681:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$",
+ "typeString": "function (address[] storage pointer,address)"
+ }
+ },
+ "id": 933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1681:26:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 934,
+ "nodeType": "ExpressionStatement",
+ "src": "1681:26:5"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 936,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1737:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 937,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1745:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 938,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1753:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 935,
+ "name": "PoolCreated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 820,
+ "src": "1725:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address,address)"
+ }
+ },
+ "id": 939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1725:40:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 940,
+ "nodeType": "EmitStatement",
+ "src": "1720:45:5"
+ }
+ ]
+ },
+ "functionSelector": "e3433615",
+ "id": 942,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createPool",
+ "nameLocation": "688:10:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 837,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 834,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "717:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "709:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 833,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "709:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 836,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "742:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "734:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 835,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "734:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "698:57:5"
+ },
+ "returnParameters": {
+ "id": 840,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 839,
+ "mutability": "mutable",
+ "name": "poolAddress",
+ "nameLocation": "782:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "774:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 838,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "774:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "773:21:5"
+ },
+ "scope": 1019,
+ "src": "679:1094:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 957,
+ "nodeType": "Block",
+ "src": "1895:52:5",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 951,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1913:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 953,
+ "indexExpression": {
+ "id": 952,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 944,
+ "src": "1922:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1913:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 955,
+ "indexExpression": {
+ "id": 954,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 946,
+ "src": "1931:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1913:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 950,
+ "id": 956,
+ "nodeType": "Return",
+ "src": "1906:33:5"
+ }
+ ]
+ },
+ "functionSelector": "4a70f02e",
+ "id": 958,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenPairs",
+ "nameLocation": "1790:13:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 947,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 944,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "1822:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1814:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 943,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1814:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 946,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "1848:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1840:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 945,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1840:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1803:59:5"
+ },
+ "returnParameters": {
+ "id": 950,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 949,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1886:7:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 948,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1886:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1885:9:5"
+ },
+ "scope": 1019,
+ "src": "1781:166:5",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 970,
+ "nodeType": "Block",
+ "src": "2010:73:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 963,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2021:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2021:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 965,
+ "nodeType": "ExpressionStatement",
+ "src": "2021:15:5"
+ },
+ {
+ "expression": {
+ "id": 968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 966,
+ "name": "feeReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 799,
+ "src": "2049:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 967,
+ "name": "_feeReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 960,
+ "src": "2063:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2049:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 969,
+ "nodeType": "ExpressionStatement",
+ "src": "2049:26:5"
+ }
+ ]
+ },
+ "functionSelector": "efdcd974",
+ "id": 971,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setFeeReceiver",
+ "nameLocation": "1964:14:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 961,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 960,
+ "mutability": "mutable",
+ "name": "_feeReceiver",
+ "nameLocation": "1987:12:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 971,
+ "src": "1979:20:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 959,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1979:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1978:22:5"
+ },
+ "returnParameters": {
+ "id": 962,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2010:0:5"
+ },
+ "scope": 1019,
+ "src": "1955:128:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 985,
+ "nodeType": "Block",
+ "src": "2160:91:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 976,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2171:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 977,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2171:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 978,
+ "nodeType": "ExpressionStatement",
+ "src": "2171:15:5"
+ },
+ {
+ "expression": {
+ "id": 983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 979,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2199:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 981,
+ "indexExpression": {
+ "id": 980,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 973,
+ "src": "2217:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2199:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2239:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "2199:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 984,
+ "nodeType": "ExpressionStatement",
+ "src": "2199:44:5"
+ }
+ ]
+ },
+ "functionSelector": "5ac40ab3",
+ "id": 986,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToFeeReceiverSetter",
+ "nameLocation": "2100:22:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 974,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 973,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "2131:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 986,
+ "src": "2123:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 972,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2123:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2122:28:5"
+ },
+ "returnParameters": {
+ "id": 975,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2160:0:5"
+ },
+ "scope": 1019,
+ "src": "2091:160:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1000,
+ "nodeType": "Block",
+ "src": "2333:92:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 991,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2344:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2344:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 993,
+ "nodeType": "ExpressionStatement",
+ "src": "2344:15:5"
+ },
+ {
+ "expression": {
+ "id": 998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 994,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2372:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 996,
+ "indexExpression": {
+ "id": 995,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 988,
+ "src": "2390:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2372:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2412:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "2372:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 999,
+ "nodeType": "ExpressionStatement",
+ "src": "2372:45:5"
+ }
+ ]
+ },
+ "functionSelector": "48397023",
+ "id": 1001,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromFeeReceiverSetter",
+ "nameLocation": "2268:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 989,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 988,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "2304:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1001,
+ "src": "2296:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 987,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2296:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2295:28:5"
+ },
+ "returnParameters": {
+ "id": 990,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2333:0:5"
+ },
+ "scope": 1019,
+ "src": "2259:166:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1017,
+ "nodeType": "Block",
+ "src": "2472:121:5",
+ "statements": [
+ {
+ "assignments": [
+ 1005
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1005,
+ "mutability": "mutable",
+ "name": "ifSetter",
+ "nameLocation": "2488:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1017,
+ "src": "2483:13:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1004,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2483:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1010,
+ "initialValue": {
+ "baseExpression": {
+ "id": 1006,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2499:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 1009,
+ "indexExpression": {
+ "expression": {
+ "id": 1007,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "2517:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1008,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2521:6:5",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2517:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "2499:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2483:45:5"
+ },
+ {
+ "condition": {
+ "id": 1012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "2543:9:5",
+ "subExpression": {
+ "id": 1011,
+ "name": "ifSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1005,
+ "src": "2544:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1016,
+ "nodeType": "IfStatement",
+ "src": "2539:46:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1013,
+ "name": "PoolFactory__NotSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 797,
+ "src": "2561:22:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1014,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2561:24:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1015,
+ "nodeType": "RevertStatement",
+ "src": "2554:31:5"
+ }
+ }
+ ]
+ },
+ "id": 1018,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "checkIfSetter",
+ "nameLocation": "2442:13:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1002,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2455:2:5"
+ },
+ "returnParameters": {
+ "id": 1003,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2472:0:5"
+ },
+ "scope": 1019,
+ "src": "2433:160:5",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 1020,
+ "src": "262:2334:5",
+ "usedErrors": [
+ 791,
+ 793,
+ 795,
+ 797
+ ],
+ "usedEvents": [
+ 820
+ ]
+ }
+ ],
+ "src": "33:2563:5"
+ },
+ "id": 5
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/LiquidityProvider.sol",
+ "exportedSymbols": {
+ "DefiLibrary": [
+ 2295
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IFactory": [
+ 2124
+ ],
+ "IPool": [
+ 2166
+ ],
+ "IWEDU": [
+ 2186
+ ],
+ "LiquidityProvider": [
+ 1537
+ ],
+ "LiquidityProvider__EDUTransferFailed": [
+ 1032
+ ],
+ "LiquidityProvider__InsufficientAmount": [
+ 1028
+ ],
+ "LiquidityProvider__InsufficientOutputAmount": [
+ 1030
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 2190
+ ],
+ "PoolFactory__ZeroAddress": [
+ 2192
+ ]
+ },
+ "id": 1538,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1021,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:6"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "id": 1022,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 730,
+ "src": "120:56:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IFactory.sol",
+ "file": "./interfaces/IFactory.sol",
+ "id": 1023,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2125,
+ "src": "178:35:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "file": "./interfaces/IPool.sol",
+ "id": 1024,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2167,
+ "src": "215:32:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IWedu.sol",
+ "file": "./interfaces/IWedu.sol",
+ "id": 1025,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2187,
+ "src": "249:32:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/libraries/Library.sol",
+ "file": "./libraries/Library.sol",
+ "id": 1026,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2296,
+ "src": "283:33:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "d0368649",
+ "id": 1028,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nameLocation": "326:37:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1027,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "363:2:6"
+ },
+ "src": "320:46:6"
+ },
+ {
+ "errorSelector": "dec0fbbe",
+ "id": 1030,
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "nameLocation": "374:43:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1029,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "417:2:6"
+ },
+ "src": "368:52:6"
+ },
+ {
+ "errorSelector": "0221f34c",
+ "id": 1032,
+ "name": "LiquidityProvider__EDUTransferFailed",
+ "nameLocation": "428:36:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1031,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "464:2:6"
+ },
+ "src": "422:45:6"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "LiquidityProvider",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 1537,
+ "linearizedBaseContracts": [
+ 1537
+ ],
+ "name": "LiquidityProvider",
+ "nameLocation": "480:17:6",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 1034,
+ "mutability": "immutable",
+ "name": "factoryAddress",
+ "nameLocation": "531:14:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1537,
+ "src": "505:40:6",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1033,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "505:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1036,
+ "mutability": "immutable",
+ "name": "WEDU",
+ "nameLocation": "578:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1537,
+ "src": "552:30:6",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1035,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "552:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1051,
+ "nodeType": "Block",
+ "src": "643:74:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1043,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "654:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1044,
+ "name": "_factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1038,
+ "src": "671:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "654:32:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1046,
+ "nodeType": "ExpressionStatement",
+ "src": "654:32:6"
+ },
+ {
+ "expression": {
+ "id": 1049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1047,
+ "name": "WEDU",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1036,
+ "src": "697:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1048,
+ "name": "_WEDU",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1040,
+ "src": "704:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "697:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1050,
+ "nodeType": "ExpressionStatement",
+ "src": "697:12:6"
+ }
+ ]
+ },
+ "id": 1052,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1041,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1038,
+ "mutability": "mutable",
+ "name": "_factoryAddress",
+ "nameLocation": "611:15:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1052,
+ "src": "603:23:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1037,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "603:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1040,
+ "mutability": "mutable",
+ "name": "_WEDU",
+ "nameLocation": "636:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1052,
+ "src": "628:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1039,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "628:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "602:40:6"
+ },
+ "returnParameters": {
+ "id": 1042,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "643:0:6"
+ },
+ "scope": 1537,
+ "src": "591:126:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1184,
+ "nodeType": "Block",
+ "src": "995:1414:6",
+ "statements": [
+ {
+ "assignments": [
+ 1072
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1072,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "1014:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1006:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1071,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1006:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1080,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1077,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1054,
+ "src": "1060:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1078,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1056,
+ "src": "1069:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1074,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "1030:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1073,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "1021:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1021:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1046:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "1021:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1021:56:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1006:71:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1081,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1092:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1108:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1100:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1082,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1100:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1100:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1092:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1097,
+ "nodeType": "IfStatement",
+ "src": "1088:97:6",
+ "trueBody": {
+ "expression": {
+ "id": 1095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1087,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1125:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1092,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1054,
+ "src": "1168:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1093,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1056,
+ "src": "1177:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1089,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "1141:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1088,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "1132:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1132:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1157:10:6",
+ "memberName": "createPool",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2123,
+ "src": "1132:35:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1132:53:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1125:60:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1096,
+ "nodeType": "ExpressionStatement",
+ "src": "1125:60:6"
+ }
+ },
+ {
+ "assignments": [
+ 1099,
+ 1101
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1099,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "1207:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1199:16:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1098,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1199:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1101,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "1225:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1217:16:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1100,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1217:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1107,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1103,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1243:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1102,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "1237:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1249:16:6",
+ "memberName": "getTokenReserves",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2156,
+ "src": "1237:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view external returns (uint256,uint256)"
+ }
+ },
+ "id": 1106,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:30:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1198:69:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1110,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1108,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "1284:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1296:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1284:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1113,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1111,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "1301:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1313:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1301:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1284:30:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1182,
+ "nodeType": "Block",
+ "src": "1416:986:6",
+ "statements": [
+ {
+ "assignments": [
+ 1125
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1125,
+ "mutability": "mutable",
+ "name": "optimalAmountOfTokenB",
+ "nameLocation": "1439:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1182,
+ "src": "1431:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1124,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1431:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1131,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1127,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1487:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1128,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "1527:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1129,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "1554:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1126,
+ "name": "quote",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1460,
+ "src": "1463:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1463:114:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1431:146:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1132,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1596:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 1133,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "1621:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1596:46:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1180,
+ "nodeType": "Block",
+ "src": "1938:453:6",
+ "statements": [
+ {
+ "assignments": [
+ 1152
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1152,
+ "mutability": "mutable",
+ "name": "amountAOptimal",
+ "nameLocation": "1965:14:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1180,
+ "src": "1957:22:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1957:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1158,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1154,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "2010:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1155,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "2054:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1156,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "2085:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1153,
+ "name": "quote",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1460,
+ "src": "1982:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1982:130:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1957:155:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1160,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2138:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 1161,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "2156:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2138:39:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 1159,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "2131:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 1163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2131:47:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1164,
+ "nodeType": "ExpressionStatement",
+ "src": "2131:47:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1165,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2201:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1166,
+ "name": "minTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1062,
+ "src": "2218:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2201:26:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1171,
+ "nodeType": "IfStatement",
+ "src": "2197:99:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1168,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1028,
+ "src": "2257:37:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2257:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1170,
+ "nodeType": "RevertStatement",
+ "src": "2250:46:6"
+ }
+ },
+ {
+ "expression": {
+ "id": 1178,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1172,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "2316:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1173,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "2325:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1174,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "2315:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1175,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2337:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1176,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "2353:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1177,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2336:39:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "2315:60:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1179,
+ "nodeType": "ExpressionStatement",
+ "src": "2315:60:6"
+ }
+ ]
+ },
+ "id": 1181,
+ "nodeType": "IfStatement",
+ "src": "1592:799:6",
+ "trueBody": {
+ "id": 1150,
+ "nodeType": "Block",
+ "src": "1644:288:6",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1135,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1667:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1136,
+ "name": "minTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1064,
+ "src": "1691:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1667:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1141,
+ "nodeType": "IfStatement",
+ "src": "1663:106:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1138,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1028,
+ "src": "1730:37:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1730:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1140,
+ "nodeType": "RevertStatement",
+ "src": "1723:46:6"
+ }
+ },
+ {
+ "expression": {
+ "id": 1148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1142,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "1789:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1143,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "1798:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1144,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "1788:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1145,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1832:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1146,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1876:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1147,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1809:107:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "1788:128:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1149,
+ "nodeType": "ExpressionStatement",
+ "src": "1788:128:6"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1183,
+ "nodeType": "IfStatement",
+ "src": "1280:1122:6",
+ "trueBody": {
+ "id": 1123,
+ "nodeType": "Block",
+ "src": "1316:94:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1115,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "1332:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1116,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "1341:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1117,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "1331:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1118,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1353:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1119,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "1376:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1120,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1352:46:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "1331:67:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1122,
+ "nodeType": "ExpressionStatement",
+ "src": "1331:67:6"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1185,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addLiquidity",
+ "nameLocation": "734:13:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1065,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1054,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "766:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "758:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1053,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "758:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1056,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "792:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "784:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1055,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "784:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1058,
+ "mutability": "mutable",
+ "name": "amountOfTokenADesired",
+ "nameLocation": "818:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "810:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1057,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "810:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1060,
+ "mutability": "mutable",
+ "name": "amountOfTokenBDesired",
+ "nameLocation": "858:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "850:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1059,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "850:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1062,
+ "mutability": "mutable",
+ "name": "minTokenA",
+ "nameLocation": "898:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "890:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1061,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "890:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1064,
+ "mutability": "mutable",
+ "name": "minTokenB",
+ "nameLocation": "926:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "918:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1063,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "918:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "747:195:6"
+ },
+ "returnParameters": {
+ "id": 1070,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1067,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "969:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "961:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1066,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "961:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1069,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "986:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "978:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1068,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "978:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "960:34:6"
+ },
+ "scope": 1537,
+ "src": "725:1684:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1259,
+ "nodeType": "Block",
+ "src": "2703:487:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1206,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1200,
+ "src": "2715:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1207,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1202,
+ "src": "2724:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1208,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "2714:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1210,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "2763:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1211,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "2784:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1212,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1191,
+ "src": "2805:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1213,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1193,
+ "src": "2841:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1214,
+ "name": "minTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1195,
+ "src": "2877:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1215,
+ "name": "minTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1197,
+ "src": "2901:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1209,
+ "name": "_addLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1185,
+ "src": "2735:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)"
+ }
+ },
+ "id": 1216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2735:186:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "2714:207:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1218,
+ "nodeType": "ExpressionStatement",
+ "src": "2714:207:6"
+ },
+ {
+ "assignments": [
+ 1220
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1220,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "2940:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1259,
+ "src": "2932:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1219,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2932:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1228,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1225,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "2986:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1226,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "2994:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1222,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "2956:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1221,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "2947:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2947:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2972:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "2947:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2947:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2932:69:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1233,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3040:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3044:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3040:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1235,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3052:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1236,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1200,
+ "src": "3058:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1230,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "3019:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1229,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3012:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3012:14:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3027:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "3012:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3012:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1238,
+ "nodeType": "ExpressionStatement",
+ "src": "3012:54:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1243,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3105:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1244,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3109:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3105:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1245,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3117:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1246,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1202,
+ "src": "3123:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1240,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "3084:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1239,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3077:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3077:14:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3092:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "3077:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3077:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1248,
+ "nodeType": "ExpressionStatement",
+ "src": "3077:54:6"
+ },
+ {
+ "expression": {
+ "id": 1257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1249,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1204,
+ "src": "3142:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1254,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3171:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1255,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3175:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3171:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1251,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3160:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1250,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "3154:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3154:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3166:4:6",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2140,
+ "src": "3154:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3154:28:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3142:40:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1258,
+ "nodeType": "ExpressionStatement",
+ "src": "3142:40:6"
+ }
+ ]
+ },
+ "functionSelector": "3351733f",
+ "id": 1260,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addLiquidity",
+ "nameLocation": "2426:12:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1198,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1187,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "2457:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2449:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1186,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2449:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1189,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "2482:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2474:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1188,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2474:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1191,
+ "mutability": "mutable",
+ "name": "amountOfTokenADesired",
+ "nameLocation": "2507:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2499:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1190,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2499:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1193,
+ "mutability": "mutable",
+ "name": "amountOfTokenBDesired",
+ "nameLocation": "2547:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2539:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1192,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2539:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1195,
+ "mutability": "mutable",
+ "name": "minTokenA",
+ "nameLocation": "2587:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2579:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1194,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2579:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1197,
+ "mutability": "mutable",
+ "name": "minTokenB",
+ "nameLocation": "2615:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2607:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1196,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2607:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2438:193:6"
+ },
+ "returnParameters": {
+ "id": 1205,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1200,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "2658:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2650:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1199,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2650:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1202,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "2675:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2667:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1201,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2667:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1204,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "2692:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2684:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1203,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2684:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2649:53:6"
+ },
+ "scope": 1537,
+ "src": "2417:773:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1349,
+ "nodeType": "Block",
+ "src": "4116:531:6",
+ "statements": [
+ {
+ "body": {
+ "id": 1347,
+ "nodeType": "Block",
+ "src": "4166:474:6",
+ "statements": [
+ {
+ "assignments": [
+ 1286,
+ 1288
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1286,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "4190:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4182:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1285,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4182:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1288,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "4205:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4197:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1287,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4197:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1298,
+ "initialValue": {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 1289,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4216:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1291,
+ "indexExpression": {
+ "id": 1290,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4221:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4216:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1292,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4225:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1296,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1293,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4230:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1294,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4234:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4230:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4225:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1297,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4215:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4181:56:6"
+ },
+ {
+ "assignments": [
+ 1300,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1300,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "4261:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4253:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1299,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4253:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 1306,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1303,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1286,
+ "src": "4296:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1304,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1288,
+ "src": "4303:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1301,
+ "name": "DefiLibrary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2295,
+ "src": "4273:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$",
+ "typeString": "type(library DefiLibrary)"
+ }
+ },
+ "id": 1302,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4285:10:6",
+ "memberName": "sortTokens",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2236,
+ "src": "4273:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$",
+ "typeString": "function (address,address) pure returns (address,address)"
+ }
+ },
+ "id": 1305,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4273:37:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4252:58:6"
+ },
+ {
+ "assignments": [
+ 1308
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1308,
+ "mutability": "mutable",
+ "name": "amountOut",
+ "nameLocation": "4333:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4325:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1307,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4325:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1314,
+ "initialValue": {
+ "baseExpression": {
+ "id": 1309,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "4345:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1313,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1310,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4353:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1311,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4357:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4353:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4345:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4325:34:6"
+ },
+ {
+ "assignments": [
+ 1316,
+ 1318
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1316,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "4383:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4375:18:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1315,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4375:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1318,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "4403:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4395:18:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1317,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4395:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1335,
+ "initialValue": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1321,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1319,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1286,
+ "src": "4417:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1320,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1300,
+ "src": "4426:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "4417:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4504:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4496:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1328,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4496:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4496:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1332,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4508:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1333,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4495:23:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "id": 1334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "4417:101:6",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 1322,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4453:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4472:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1324,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4464:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1323,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4464:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4464:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1327,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4452:23:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4374:144:6"
+ },
+ {
+ "documentation": "TODO: In case of multiple hops ",
+ "expression": {
+ "arguments": [
+ {
+ "id": 1340,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4601:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1341,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "4612:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1343,
+ "indexExpression": {
+ "id": 1342,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4620:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4612:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1344,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1270,
+ "src": "4624:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1337,
+ "name": "_pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1268,
+ "src": "4589:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1336,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "4583:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4583:12:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4596:4:6",
+ "memberName": "swap",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2165,
+ "src": "4583:17:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
+ "typeString": "function (uint256,uint256,address) external"
+ }
+ },
+ "id": 1345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4583:45:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1346,
+ "nodeType": "ExpressionStatement",
+ "src": "4583:45:6"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1276,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4140:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1277,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4144:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4149:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4144:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4158:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4144:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4140:19:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1348,
+ "initializationExpression": {
+ "assignments": [
+ 1274
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1274,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4137:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1348,
+ "src": "4132:6:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1273,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4132:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1275,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4132:6:6"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 1283,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "4161:3:6",
+ "subExpression": {
+ "id": 1282,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4161:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1284,
+ "nodeType": "ExpressionStatement",
+ "src": "4161:3:6"
+ },
+ "nodeType": "ForStatement",
+ "src": "4127:513:6"
+ }
+ ]
+ },
+ "id": 1350,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_swap",
+ "nameLocation": "3981:5:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1271,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1263,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "4014:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "3997:24:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1261,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3997:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1262,
+ "nodeType": "ArrayTypeName",
+ "src": "3997:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1266,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "4049:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4032:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1264,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4032:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1265,
+ "nodeType": "ArrayTypeName",
+ "src": "4032:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1268,
+ "mutability": "mutable",
+ "name": "_pair",
+ "nameLocation": "4072:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4064:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1267,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4064:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1270,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "4096:3:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4088:11:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1269,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4088:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3986:120:6"
+ },
+ "returnParameters": {
+ "id": 1272,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4116:0:6"
+ },
+ "scope": 1537,
+ "src": "3972:675:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1420,
+ "nodeType": "Block",
+ "src": "4899:392:6",
+ "statements": [
+ {
+ "assignments": [
+ 1365
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1365,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "4918:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1420,
+ "src": "4910:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1364,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4910:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1377,
+ "initialValue": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1370,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "4964:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1372,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4969:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4964:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1373,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "4973:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1375,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 1374,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4978:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4973:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1367,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "4934:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1366,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "4925:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4925:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4950:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "4925:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4925:56:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4910:71:6"
+ },
+ {
+ "expression": {
+ "id": 1384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1378,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "4994:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1380,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5018:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1381,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1352,
+ "src": "5024:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1382,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5034:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ ],
+ "id": 1379,
+ "name": "getAmountsOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1536,
+ "src": "5004:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)"
+ }
+ },
+ "id": 1383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5004:35:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "src": "4994:45:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1385,
+ "nodeType": "ExpressionStatement",
+ "src": "4994:45:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "id": 1386,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5054:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1391,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1390,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1387,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5062:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5070:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5062:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5079:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "5062:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5054:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1392,
+ "name": "amountOutMin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1354,
+ "src": "5084:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5054:42:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1397,
+ "nodeType": "IfStatement",
+ "src": "5050:113:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1394,
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1030,
+ "src": "5118:43:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5118:45:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1396,
+ "nodeType": "RevertStatement",
+ "src": "5111:52:6"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1404,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "5205:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5209:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "5205:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1406,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5217:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1407,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5223:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1409,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1408,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5231:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5223:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1399,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5183:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1401,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5188:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5183:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1398,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "5176:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5176:15:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5192:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "5176:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5176:58:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1411,
+ "nodeType": "ExpressionStatement",
+ "src": "5176:58:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1413,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5251:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "id": 1414,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5260:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ {
+ "id": 1415,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5266:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 1416,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "5272:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1417,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5276:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "5272:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1412,
+ "name": "_swap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1350,
+ "src": "5245:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (uint256[] memory,address[] memory,address,address)"
+ }
+ },
+ "id": 1418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5245:38:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1419,
+ "nodeType": "ExpressionStatement",
+ "src": "5245:38:6"
+ }
+ ]
+ },
+ "functionSelector": "86818f26",
+ "id": 1421,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swapExactTokensForTokens",
+ "nameLocation": "4664:24:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1358,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1352,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "4704:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4699:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1351,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4699:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1354,
+ "mutability": "mutable",
+ "name": "amountOutMin",
+ "nameLocation": "4728:12:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4723:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1353,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4723:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1357,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "4770:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4751:23:6",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1355,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4751:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1356,
+ "nodeType": "ArrayTypeName",
+ "src": "4751:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4688:93:6"
+ },
+ "returnParameters": {
+ "id": 1363,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1362,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "4875:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4861:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1360,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4861:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1361,
+ "nodeType": "ArrayTypeName",
+ "src": "4861:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4817:76:6"
+ },
+ "scope": 1537,
+ "src": "4655:636:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1459,
+ "nodeType": "Block",
+ "src": "5429:265:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1433,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1423,
+ "src": "5448:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5458:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5448:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54",
+ "id": 1436,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5461:43:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\""
+ },
+ "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\""
+ }
+ ],
+ "id": 1432,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5440:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1437,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5440:65:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1438,
+ "nodeType": "ExpressionStatement",
+ "src": "5440:65:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1440,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1425,
+ "src": "5538:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1441,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5549:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5538:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1443,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1427,
+ "src": "5554:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5565:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5554:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5538:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459",
+ "id": 1447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5581:42:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ }
+ ],
+ "id": 1439,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5516:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1448,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5516:118:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1449,
+ "nodeType": "ExpressionStatement",
+ "src": "5516:118:6"
+ },
+ {
+ "expression": {
+ "id": 1457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1450,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1430,
+ "src": "5645:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1451,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1423,
+ "src": "5656:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1452,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1427,
+ "src": "5666:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5656:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1454,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5655:20:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1455,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1425,
+ "src": "5678:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5655:31:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5645:41:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1458,
+ "nodeType": "ExpressionStatement",
+ "src": "5645:41:6"
+ }
+ ]
+ },
+ "id": 1460,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "quote",
+ "nameLocation": "5308:5:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1428,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1423,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "5329:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5324:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1422,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5324:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1425,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "5352:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5347:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1424,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5347:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1427,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "5376:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5371:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1426,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5371:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5313:78:6"
+ },
+ "returnParameters": {
+ "id": 1431,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1430,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "5420:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5415:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1429,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5415:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5414:14:6"
+ },
+ "scope": 1537,
+ "src": "5299:395:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1535,
+ "nodeType": "Block",
+ "src": "5923:453:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1474,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "5942:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5947:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5942:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5957:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "5942:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448",
+ "id": 1478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5960:32:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\""
+ },
+ "value": "UniswapV2Library: INVALID_PATH"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\""
+ }
+ ],
+ "id": 1473,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5934:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5934:59:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1480,
+ "nodeType": "ExpressionStatement",
+ "src": "5934:59:6"
+ },
+ {
+ "expression": {
+ "id": 1488,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1481,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6004:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1485,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "6025:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6030:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6025:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "6014:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (uint256[] memory)"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1482,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6018:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1483,
+ "nodeType": "ArrayTypeName",
+ "src": "6018:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ "id": 1487,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6014:23:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "src": "6004:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1489,
+ "nodeType": "ExpressionStatement",
+ "src": "6004:33:6"
+ },
+ {
+ "expression": {
+ "id": 1494,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1490,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6048:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1492,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1491,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6056:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6048:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1493,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1464,
+ "src": "6061:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6048:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1495,
+ "nodeType": "ExpressionStatement",
+ "src": "6048:21:6"
+ },
+ {
+ "body": {
+ "id": 1533,
+ "nodeType": "Block",
+ "src": "6119:250:6",
+ "statements": [
+ {
+ "assignments": [
+ 1509,
+ 1511
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1509,
+ "mutability": "mutable",
+ "name": "reserveIn",
+ "nameLocation": "6140:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1533,
+ "src": "6135:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1508,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6135:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1511,
+ "mutability": "mutable",
+ "name": "reserveOut",
+ "nameLocation": "6156:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1533,
+ "src": "6151:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1510,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6151:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1517,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1513,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1462,
+ "src": "6176:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1512,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "6170:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1514,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6170:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6182:16:6",
+ "memberName": "getTokenReserves",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2156,
+ "src": "6170:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view external returns (uint256,uint256)"
+ }
+ },
+ "id": 1516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6170:30:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6134:66:6"
+ },
+ {
+ "expression": {
+ "id": 1531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1518,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6215:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1522,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1519,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6223:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1520,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6227:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6223:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6215:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1525,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6275:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1527,
+ "indexExpression": {
+ "id": 1526,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6283:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6275:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1528,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1509,
+ "src": "6304:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1529,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1511,
+ "src": "6332:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1523,
+ "name": "DefiLibrary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2295,
+ "src": "6232:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$",
+ "typeString": "type(library DefiLibrary)"
+ }
+ },
+ "id": 1524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6244:12:6",
+ "memberName": "getAmountOut",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2294,
+ "src": "6232:24:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6232:125:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6215:142:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1532,
+ "nodeType": "ExpressionStatement",
+ "src": "6215:142:6"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1499,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6093:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1500,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "6097:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6102:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6097:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6111:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6097:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6093:19:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1534,
+ "initializationExpression": {
+ "assignments": [
+ 1497
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1497,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "6090:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1534,
+ "src": "6085:6:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1496,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6085:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1498,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6085:6:6"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 1506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "6114:3:6",
+ "subExpression": {
+ "id": 1505,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6114:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1507,
+ "nodeType": "ExpressionStatement",
+ "src": "6114:3:6"
+ },
+ "nodeType": "ForStatement",
+ "src": "6080:289:6"
+ }
+ ]
+ },
+ "functionSelector": "bb7b9c76",
+ "id": 1536,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getAmountsOut",
+ "nameLocation": "5779:13:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1468,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1462,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "5811:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5803:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1461,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5803:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1464,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "5831:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5826:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1463,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5826:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1467,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "5867:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5850:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1465,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5850:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1466,
+ "nodeType": "ArrayTypeName",
+ "src": "5850:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5792:86:6"
+ },
+ "returnParameters": {
+ "id": 1472,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1471,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "5914:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5900:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1469,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5900:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1470,
+ "nodeType": "ArrayTypeName",
+ "src": "5900:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5899:23:6"
+ },
+ "scope": 1537,
+ "src": "5770:606:6",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 1538,
+ "src": "471:5908:6",
+ "usedErrors": [
+ 1028,
+ 1030,
+ 2190,
+ 2192
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:6346:6"
+ },
+ "id": 6
+ },
+ "contracts/core/Math.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Math.sol",
+ "exportedSymbols": {
+ "Math": [
+ 1613
+ ]
+ },
+ "id": 1614,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1539,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:7"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Math",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 1613,
+ "linearizedBaseContracts": [
+ 1613
+ ],
+ "name": "Math",
+ "nameLocation": "123:4:7",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 1557,
+ "nodeType": "Block",
+ "src": "195:36:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1555,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1548,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1546,
+ "src": "206:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1549,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1541,
+ "src": "210:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1550,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1543,
+ "src": "214:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "210:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "id": 1553,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1543,
+ "src": "222:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1554,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "210:13:7",
+ "trueExpression": {
+ "id": 1552,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1541,
+ "src": "218:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "206:17:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1556,
+ "nodeType": "ExpressionStatement",
+ "src": "206:17:7"
+ }
+ ]
+ },
+ "id": 1558,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "min",
+ "nameLocation": "144:3:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1544,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1541,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "153:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "148:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1540,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "148:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1543,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "161:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "156:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1542,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "156:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "147:16:7"
+ },
+ "returnParameters": {
+ "id": 1547,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1546,
+ "mutability": "mutable",
+ "name": "z",
+ "nameLocation": "192:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "187:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1545,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "187:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "186:8:7"
+ },
+ "scope": 1613,
+ "src": "135:96:7",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1611,
+ "nodeType": "Block",
+ "src": "402:250:7",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1565,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "417:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 1566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "421:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "417:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1603,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1601,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "605:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "610:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "605:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1609,
+ "nodeType": "IfStatement",
+ "src": "601:44:7",
+ "trueBody": {
+ "id": 1608,
+ "nodeType": "Block",
+ "src": "613:32:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1606,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1604,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "628:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 1605,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "632:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "628:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1607,
+ "nodeType": "ExpressionStatement",
+ "src": "628:5:7"
+ }
+ ]
+ }
+ },
+ "id": 1610,
+ "nodeType": "IfStatement",
+ "src": "413:232:7",
+ "trueBody": {
+ "id": 1600,
+ "nodeType": "Block",
+ "src": "424:171:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1570,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1568,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "439:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1569,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "443:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "439:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1571,
+ "nodeType": "ExpressionStatement",
+ "src": "439:5:7"
+ },
+ {
+ "assignments": [
+ 1573
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1573,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "464:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1600,
+ "src": "459:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1572,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "459:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1579,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1574,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "468:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "472:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "468:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "476:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "468:9:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "459:18:7"
+ },
+ {
+ "body": {
+ "id": 1598,
+ "nodeType": "Block",
+ "src": "506:78:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1583,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "525:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1584,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "529:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "525:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1586,
+ "nodeType": "ExpressionStatement",
+ "src": "525:5:7"
+ },
+ {
+ "expression": {
+ "id": 1596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1587,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "549:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1588,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "554:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1589,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "558:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "554:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 1591,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "562:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "554:9:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1593,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "553:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "567:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "553:15:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "549:19:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1597,
+ "nodeType": "ExpressionStatement",
+ "src": "549:19:7"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1582,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1580,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "499:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1581,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "503:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "499:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1599,
+ "nodeType": "WhileStatement",
+ "src": "492:92:7"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1612,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sqrt",
+ "nameLocation": "358:4:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1561,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1560,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "368:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1612,
+ "src": "363:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1559,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "363:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "362:8:7"
+ },
+ "returnParameters": {
+ "id": 1564,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1563,
+ "mutability": "mutable",
+ "name": "z",
+ "nameLocation": "399:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1612,
+ "src": "394:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1562,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "394:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "393:8:7"
+ },
+ "scope": 1613,
+ "src": "349:303:7",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 1614,
+ "src": "115:540:7",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:622:7"
+ },
+ "id": 7
+ },
+ "contracts/core/Pool.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Pool.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "Math": [
+ 1613
+ ],
+ "Pool": [
+ 2103
+ ],
+ "PoolFactory__InsufficientFunds": [
+ 1624
+ ],
+ "PoolFactory__InsufficientLiquidity": [
+ 1622
+ ],
+ "PoolFactory__NotOwner": [
+ 1620
+ ]
+ },
+ "id": 2104,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1615,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:8"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 1616,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 652,
+ "src": "60:55:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "id": 1617,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 730,
+ "src": "117:56:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/Math.sol",
+ "file": "./Math.sol",
+ "id": 1618,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 1614,
+ "src": "175:20:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "0c18a1fc",
+ "id": 1620,
+ "name": "PoolFactory__NotOwner",
+ "nameLocation": "205:21:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1619,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "226:2:8"
+ },
+ "src": "199:30:8"
+ },
+ {
+ "errorSelector": "24217e51",
+ "id": 1622,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nameLocation": "237:34:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1621,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "271:2:8"
+ },
+ "src": "231:43:8"
+ },
+ {
+ "errorSelector": "5d125c46",
+ "id": 1624,
+ "name": "PoolFactory__InsufficientFunds",
+ "nameLocation": "282:30:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1623,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "312:2:8"
+ },
+ "src": "276:39:8"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1625,
+ "name": "ERC20",
+ "nameLocations": [
+ "336:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "336:5:8"
+ },
+ "id": 1626,
+ "nodeType": "InheritanceSpecifier",
+ "src": "336:5:8"
+ }
+ ],
+ "canonicalName": "Pool",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2103,
+ "linearizedBaseContracts": [
+ 2103,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "Pool",
+ "nameLocation": "328:4:8",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 1629,
+ "libraryName": {
+ "id": 1627,
+ "name": "Math",
+ "nameLocations": [
+ "355:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1613,
+ "src": "355:4:8"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "349:23:8",
+ "typeName": {
+ "id": 1628,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "364:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ {
+ "constant": false,
+ "id": 1631,
+ "mutability": "immutable",
+ "name": "factory",
+ "nameLocation": "406:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "380:33:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1630,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "380:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1633,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "436:6:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "420:22:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1632,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "420:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1635,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "465:6:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "449:22:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1634,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "449:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": true,
+ "functionSelector": "ba9a7a56",
+ "id": 1640,
+ "mutability": "constant",
+ "name": "MINIMUM_LIQUIDITY",
+ "nameLocation": "504:17:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "480:51:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1636,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "480:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "id": 1639,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 1637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "524:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 1638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "530:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "524:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "id": 1642,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "556:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "540:24:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1641,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1644,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "587:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "571:24:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1643,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "571:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1646,
+ "mutability": "mutable",
+ "name": "totalLpShares",
+ "nameLocation": "620:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "604:29:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1645,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "604:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1658,
+ "nodeType": "Block",
+ "src": "687:39:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1656,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1653,
+ "name": "factory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1631,
+ "src": "698:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 1654,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "708:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "712:6:8",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "708:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "698:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1657,
+ "nodeType": "ExpressionStatement",
+ "src": "698:20:8"
+ }
+ ]
+ },
+ "id": 1659,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4c6971756964697479546f6b656e73",
+ "id": 1649,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "662:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0",
+ "typeString": "literal_string \"LiquidityTokens\""
+ },
+ "value": "LiquidityTokens"
+ },
+ {
+ "hexValue": "4c50",
+ "id": 1650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "681:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3",
+ "typeString": "literal_string \"LP\""
+ },
+ "value": "LP"
+ }
+ ],
+ "id": 1651,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 1648,
+ "name": "ERC20",
+ "nameLocations": [
+ "656:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "656:5:8"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "656:30:8"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1647,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "653:2:8"
+ },
+ "returnParameters": {
+ "id": 1652,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "687:0:8"
+ },
+ "scope": 2103,
+ "src": "642:84:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1682,
+ "nodeType": "Block",
+ "src": "791:132:8",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1669,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1666,
+ "name": "factory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1631,
+ "src": "806:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 1667,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "817:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1668,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "821:6:8",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "817:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "806:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1673,
+ "nodeType": "IfStatement",
+ "src": "802:57:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1670,
+ "name": "PoolFactory__NotOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1620,
+ "src": "836:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "836:23:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1672,
+ "nodeType": "RevertStatement",
+ "src": "829:30:8"
+ }
+ },
+ {
+ "expression": {
+ "id": 1676,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1674,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "872:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1675,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1661,
+ "src": "881:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "872:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1677,
+ "nodeType": "ExpressionStatement",
+ "src": "872:16:8"
+ },
+ {
+ "expression": {
+ "id": 1680,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1678,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "899:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1679,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1663,
+ "src": "908:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "899:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1681,
+ "nodeType": "ExpressionStatement",
+ "src": "899:16:8"
+ }
+ ]
+ },
+ "functionSelector": "f09a4016",
+ "id": 1683,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "init",
+ "nameLocation": "743:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1661,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "756:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1683,
+ "src": "748:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1660,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "748:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1663,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "773:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1683,
+ "src": "765:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1662,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "765:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "747:34:8"
+ },
+ "returnParameters": {
+ "id": 1665,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "791:0:8"
+ },
+ "scope": 2103,
+ "src": "734:189:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1698,
+ "nodeType": "Block",
+ "src": "994:70:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1692,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1690,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1642,
+ "src": "1005:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1691,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1685,
+ "src": "1016:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1005:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1693,
+ "nodeType": "ExpressionStatement",
+ "src": "1005:20:8"
+ },
+ {
+ "expression": {
+ "id": 1696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1694,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1644,
+ "src": "1036:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1695,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1687,
+ "src": "1047:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1036:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1697,
+ "nodeType": "ExpressionStatement",
+ "src": "1036:20:8"
+ }
+ ]
+ },
+ "id": 1699,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_update",
+ "nameLocation": "940:7:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1688,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1685,
+ "mutability": "mutable",
+ "name": "_balanceA",
+ "nameLocation": "956:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1699,
+ "src": "948:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1684,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "948:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1687,
+ "mutability": "mutable",
+ "name": "_balanceB",
+ "nameLocation": "975:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1699,
+ "src": "967:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1686,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "967:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "947:38:8"
+ },
+ "returnParameters": {
+ "id": 1689,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "994:0:8"
+ },
+ "scope": 2103,
+ "src": "931:133:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1815,
+ "nodeType": "Block",
+ "src": "1136:1104:8",
+ "statements": [
+ {
+ "assignments": [
+ 1707,
+ 1709
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1707,
+ "mutability": "mutable",
+ "name": "_reserveA",
+ "nameLocation": "1156:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1148:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1706,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1148:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1709,
+ "mutability": "mutable",
+ "name": "_reserveB",
+ "nameLocation": "1175:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1167:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1708,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1167:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1712,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1710,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "1188:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1188:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1147:59:8"
+ },
+ {
+ "assignments": [
+ 1714
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1714,
+ "mutability": "mutable",
+ "name": "_balanceA",
+ "nameLocation": "1225:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1217:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1713,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1217:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1724,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1721,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "1270:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1262:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1719,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1262:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1262:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1716,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "1244:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1715,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "1237:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1717,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1252:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "1237:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1217:59:8"
+ },
+ {
+ "assignments": [
+ 1726
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1726,
+ "mutability": "mutable",
+ "name": "_balanceB",
+ "nameLocation": "1295:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1287:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1725,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1287:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1736,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1733,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "1340:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1332:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1731,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1332:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1332:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1728,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "1314:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1727,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "1307:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1307:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1730,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1322:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "1307:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1307:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1287:59:8"
+ },
+ {
+ "assignments": [
+ 1738
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1738,
+ "mutability": "mutable",
+ "name": "depositOfTokenA",
+ "nameLocation": "1365:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1357:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1737,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1357:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1742,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1739,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1714,
+ "src": "1383:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 1740,
+ "name": "_reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1707,
+ "src": "1395:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1383:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1357:47:8"
+ },
+ {
+ "assignments": [
+ 1744
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1744,
+ "mutability": "mutable",
+ "name": "depositOfTokenB",
+ "nameLocation": "1423:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1415:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1743,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1415:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1748,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1747,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1745,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1726,
+ "src": "1441:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 1746,
+ "name": "_reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1709,
+ "src": "1453:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1441:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1415:47:8"
+ },
+ {
+ "assignments": [
+ 1750
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1750,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "1483:12:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1475:20:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1749,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1475:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1753,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1751,
+ "name": "totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 224,
+ "src": "1498:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
+ "typeString": "function () view returns (uint256)"
+ }
+ },
+ "id": 1752,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1498:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1475:36:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1756,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1754,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1526:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1542:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1526:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1796,
+ "nodeType": "Block",
+ "src": "1828:188:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1778,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "1843:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1783,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1781,
+ "name": "depositOfTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1738,
+ "src": "1883:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1782,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1901:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1883:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1784,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1882:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1785,
+ "name": "_reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1707,
+ "src": "1917:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1882:44:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1792,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1787,
+ "name": "depositOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "1946:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1788,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1964:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1946:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1790,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1945:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1791,
+ "name": "_reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1709,
+ "src": "1980:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1945:44:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1779,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1613,
+ "src": "1855:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$1613_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 1780,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1860:3:8",
+ "memberName": "min",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1558,
+ "src": "1855:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1855:149:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1843:161:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1795,
+ "nodeType": "ExpressionStatement",
+ "src": "1843:161:8"
+ }
+ ]
+ },
+ "id": 1797,
+ "nodeType": "IfStatement",
+ "src": "1522:494:8",
+ "trueBody": {
+ "id": 1777,
+ "nodeType": "Block",
+ "src": "1545:277:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1757,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "1560:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1762,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1760,
+ "name": "depositOfTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1738,
+ "src": "1599:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1761,
+ "name": "depositOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "1617:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1599:33:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1758,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1613,
+ "src": "1589:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$1613_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 1759,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1594:4:8",
+ "memberName": "sqrt",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1612,
+ "src": "1589:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1589:44:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "components": [
+ {
+ "id": 1764,
+ "name": "MINIMUM_LIQUIDITY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1640,
+ "src": "1654:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1765,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1653:19:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1589:83:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1560:112:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1768,
+ "nodeType": "ExpressionStatement",
+ "src": "1560:112:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "31",
+ "id": 1772,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1701:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ }
+ ],
+ "id": 1771,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1693:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1770,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1693:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1693:10:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1774,
+ "name": "MINIMUM_LIQUIDITY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1640,
+ "src": "1705:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1769,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "1687:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1687:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1776,
+ "nodeType": "ExpressionStatement",
+ "src": "1687:36:8"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1798,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "2030:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1799,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2043:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "2030:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1804,
+ "nodeType": "IfStatement",
+ "src": "2026:63:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1801,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "2053:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1802,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2053:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1803,
+ "nodeType": "RevertStatement",
+ "src": "2046:43:8"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1806,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1701,
+ "src": "2106:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1807,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "2111:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1805,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "2100:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2100:21:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1809,
+ "nodeType": "ExpressionStatement",
+ "src": "2100:21:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1811,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1714,
+ "src": "2140:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1812,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1726,
+ "src": "2151:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1810,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "2132:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 1813,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2132:29:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1814,
+ "nodeType": "ExpressionStatement",
+ "src": "2132:29:8"
+ }
+ ]
+ },
+ "functionSelector": "6a627842",
+ "id": 1816,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "1081:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1701,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "1094:3:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1816,
+ "src": "1086:11:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1700,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1086:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1085:13:8"
+ },
+ "returnParameters": {
+ "id": 1705,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1704,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "1125:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1816,
+ "src": "1117:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1117:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1116:19:8"
+ },
+ "scope": 2103,
+ "src": "1072:1168:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1957,
+ "nodeType": "Block",
+ "src": "2368:1169:8",
+ "statements": [
+ {
+ "assignments": [
+ 1826,
+ 1828
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1826,
+ "mutability": "mutable",
+ "name": "_reserve0",
+ "nameLocation": "2388:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2380:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1825,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2380:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1828,
+ "mutability": "mutable",
+ "name": "_reserve1",
+ "nameLocation": "2407:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2399:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1827,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2399:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1831,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1829,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "2420:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2420:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2379:59:8"
+ },
+ {
+ "assignments": [
+ 1833
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1833,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "2472:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2464:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1832,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2464:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1835,
+ "initialValue": {
+ "id": 1834,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "2482:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2464:24:8"
+ },
+ {
+ "assignments": [
+ 1837
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1837,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "2522:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2514:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1836,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2514:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1839,
+ "initialValue": {
+ "id": 1838,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "2532:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2514:24:8"
+ },
+ {
+ "assignments": [
+ 1841
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1841,
+ "mutability": "mutable",
+ "name": "balanceA",
+ "nameLocation": "2569:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2564:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1840,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2564:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1851,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1848,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "2614:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2606:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1846,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2606:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1849,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2606:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1843,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "2587:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1842,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "2580:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2580:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2596:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "2580:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2580:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2564:56:8"
+ },
+ {
+ "assignments": [
+ 1853
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1853,
+ "mutability": "mutable",
+ "name": "balanceB",
+ "nameLocation": "2636:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2631:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1852,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2631:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1863,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1860,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "2681:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2673:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1858,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2673:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2673:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1855,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "2654:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1854,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "2647:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2647:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1857,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2663:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "2647:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2647:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2631:56:8"
+ },
+ {
+ "assignments": [
+ 1865
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1865,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "2703:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2698:14:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1864,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2698:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1869,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1867,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "2725:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1866,
+ "name": "balanceOf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 237,
+ "src": "2715:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view returns (uint256)"
+ }
+ },
+ "id": 1868,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2715:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2698:30:8"
+ },
+ {
+ "assignments": [
+ 1871
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1871,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "2749:12:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2741:20:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1870,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2741:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1874,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1872,
+ "name": "totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 224,
+ "src": "2764:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
+ "typeString": "function () view returns (uint256)"
+ }
+ },
+ "id": 1873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2764:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2741:36:8"
+ },
+ {
+ "expression": {
+ "id": 1882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1875,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "2866:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1876,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "2877:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1877,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "2889:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2877:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1879,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2876:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1880,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1871,
+ "src": "2901:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2876:37:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2866:47:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1883,
+ "nodeType": "ExpressionStatement",
+ "src": "2866:47:8"
+ },
+ {
+ "expression": {
+ "id": 1891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1884,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "2972:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1885,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "2983:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1886,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "2995:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2983:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1888,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2982:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1889,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1871,
+ "src": "3007:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2982:37:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2972:47:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1892,
+ "nodeType": "ExpressionStatement",
+ "src": "2972:47:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1893,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "3082:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3093:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3082:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1896,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "3098:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3109:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3098:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3082:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1903,
+ "nodeType": "IfStatement",
+ "src": "3078:90:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1900,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "3132:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3132:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1902,
+ "nodeType": "RevertStatement",
+ "src": "3125:43:8"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1907,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3193:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3185:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1905,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3185:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3185:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1909,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "3200:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1904,
+ "name": "_burn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 524,
+ "src": "3179:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3179:31:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1911,
+ "nodeType": "ExpressionStatement",
+ "src": "3179:31:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1916,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "3246:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1917,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "3250:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1913,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "3228:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1912,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3221:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3221:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3237:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "3221:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1918,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3221:37:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1919,
+ "nodeType": "ExpressionStatement",
+ "src": "3221:37:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1924,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "3294:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1925,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "3298:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1921,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "3276:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1920,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3269:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1922,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3269:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3285:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "3269:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3269:37:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1927,
+ "nodeType": "ExpressionStatement",
+ "src": "3269:37:8"
+ },
+ {
+ "expression": {
+ "id": 1938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1928,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "3317:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1935,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3362:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3354:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1933,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3354:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3354:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1930,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "3335:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1929,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3328:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3328:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3344:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "3328:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3328:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3317:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1939,
+ "nodeType": "ExpressionStatement",
+ "src": "3317:51:8"
+ },
+ {
+ "expression": {
+ "id": 1950,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1940,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "3379:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1947,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3424:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3416:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1945,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3416:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3416:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1942,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "3397:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1941,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3390:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1943,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3390:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1944,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3406:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "3390:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3390:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3379:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1951,
+ "nodeType": "ExpressionStatement",
+ "src": "3379:51:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1953,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "3451:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1954,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "3461:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1952,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "3443:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 1955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3443:27:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1956,
+ "nodeType": "ExpressionStatement",
+ "src": "3443:27:8"
+ }
+ ]
+ },
+ "functionSelector": "74a0f94b",
+ "id": 1958,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "liquidateLpTokens",
+ "nameLocation": "2270:17:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1818,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "2306:2:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2298:10:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1817,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2298:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2287:28:8"
+ },
+ "returnParameters": {
+ "id": 1824,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1821,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "2342:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2334:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1820,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2334:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1823,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "2359:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2351:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1822,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2351:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2333:34:8"
+ },
+ "scope": 2103,
+ "src": "2261:1276:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2064,
+ "nodeType": "Block",
+ "src": "3680:778:8",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1969,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1967,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "3695:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3709:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3695:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1970,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "3714:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3728:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3714:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3695:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1977,
+ "nodeType": "IfStatement",
+ "src": "3691:92:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1974,
+ "name": "PoolFactory__InsufficientFunds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1624,
+ "src": "3751:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1975,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3751:32:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1976,
+ "nodeType": "RevertStatement",
+ "src": "3744:39:8"
+ }
+ },
+ {
+ "assignments": [
+ 1979,
+ 1981
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1979,
+ "mutability": "mutable",
+ "name": "_reserve0",
+ "nameLocation": "3803:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3795:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1978,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3795:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1981,
+ "mutability": "mutable",
+ "name": "_reserve1",
+ "nameLocation": "3822:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3814:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1980,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3814:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1984,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1982,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "3835:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3835:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3794:59:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1985,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "3868:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 1986,
+ "name": "_reserve0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1979,
+ "src": "3881:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3868:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1988,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "3894:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 1989,
+ "name": "_reserve1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1981,
+ "src": "3907:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3894:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3868:48:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1995,
+ "nodeType": "IfStatement",
+ "src": "3864:110:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1992,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "3938:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3938:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1994,
+ "nodeType": "RevertStatement",
+ "src": "3931:43:8"
+ }
+ },
+ {
+ "assignments": [
+ 1997
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1997,
+ "mutability": "mutable",
+ "name": "balanceA",
+ "nameLocation": "3993:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3985:16:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1996,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3985:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1998,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3985:16:8"
+ },
+ {
+ "assignments": [
+ 2000
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2000,
+ "mutability": "mutable",
+ "name": "balanceB",
+ "nameLocation": "4020:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "4012:16:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4012:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2001,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4012:16:8"
+ },
+ {
+ "id": 2058,
+ "nodeType": "Block",
+ "src": "4039:372:8",
+ "statements": [
+ {
+ "assignments": [
+ 2003
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2003,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "4062:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2058,
+ "src": "4054:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2002,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4054:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2005,
+ "initialValue": {
+ "id": 2004,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "4072:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4054:24:8"
+ },
+ {
+ "assignments": [
+ 2007
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2007,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "4101:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2058,
+ "src": "4093:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2006,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4093:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2009,
+ "initialValue": {
+ "id": 2008,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "4111:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4093:24:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2010,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "4136:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4149:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4136:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2021,
+ "nodeType": "IfStatement",
+ "src": "4132:60:8",
+ "trueBody": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2017,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1964,
+ "src": "4177:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2018,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "4181:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2014,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2003,
+ "src": "4159:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2013,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4152:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4152:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4168:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "4152:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 2019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4152:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2020,
+ "nodeType": "ExpressionStatement",
+ "src": "4152:40:8"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2022,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4211:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4224:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4211:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2033,
+ "nodeType": "IfStatement",
+ "src": "4207:60:8",
+ "trueBody": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2029,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1964,
+ "src": "4252:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2030,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4256:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2026,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2007,
+ "src": "4234:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2025,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4227:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4227:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2028,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4243:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "4227:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 2031,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4227:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2032,
+ "nodeType": "ExpressionStatement",
+ "src": "4227:40:8"
+ }
+ },
+ {
+ "expression": {
+ "id": 2044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2034,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1997,
+ "src": "4282:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2041,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4327:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4319:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2039,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4319:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4319:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2036,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2003,
+ "src": "4300:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2035,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4293:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2037,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4293:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2038,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4309:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4293:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4293:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4282:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2045,
+ "nodeType": "ExpressionStatement",
+ "src": "4282:51:8"
+ },
+ {
+ "expression": {
+ "id": 2056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2046,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2000,
+ "src": "4348:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2053,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4393:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4385:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2051,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4385:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4385:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2048,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2007,
+ "src": "4366:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2047,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4359:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4375:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4359:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4348:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2057,
+ "nodeType": "ExpressionStatement",
+ "src": "4348:51:8"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2060,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1997,
+ "src": "4431:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2061,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2000,
+ "src": "4441:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2059,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "4423:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 2062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4423:27:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2063,
+ "nodeType": "ExpressionStatement",
+ "src": "4423:27:8"
+ }
+ ]
+ },
+ "functionSelector": "6d9a640a",
+ "id": 2065,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swap",
+ "nameLocation": "3554:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1965,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1960,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "3577:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3569:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1959,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3569:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1962,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "3606:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3598:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1961,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3598:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1964,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3635:2:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3627:10:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1963,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3627:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3558:112:8"
+ },
+ "returnParameters": {
+ "id": 1966,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3680:0:8"
+ },
+ "scope": 2103,
+ "src": "3545:913:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2076,
+ "nodeType": "Block",
+ "src": "4533:46:8",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 2072,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1642,
+ "src": "4552:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2073,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1644,
+ "src": "4562:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2074,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4551:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "functionReturnParameters": 2071,
+ "id": 2075,
+ "nodeType": "Return",
+ "src": "4544:27:8"
+ }
+ ]
+ },
+ "functionSelector": "b9cf5005",
+ "id": 2077,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenReserves",
+ "nameLocation": "4475:16:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2066,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4491:2:8"
+ },
+ "returnParameters": {
+ "id": 2071,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2068,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2077,
+ "src": "4515:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2067,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4515:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2070,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2077,
+ "src": "4524:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2069,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4524:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4514:18:8"
+ },
+ "scope": 2103,
+ "src": "4466:113:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2101,
+ "nodeType": "Block",
+ "src": "4653:145:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2087,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4719:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4711:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2085,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4711:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4711:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2082,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "4693:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2081,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4686:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4686:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4701:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4686:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2089,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4686:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2096,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4773:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4765:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2094,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4765:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2097,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4765:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2091,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "4747:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2090,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4740:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4740:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4755:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4740:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4740:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2080,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "4664:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 2099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4664:126:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2100,
+ "nodeType": "ExpressionStatement",
+ "src": "4664:126:8"
+ }
+ ]
+ },
+ "functionSelector": "fff6cae9",
+ "id": 2102,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sync",
+ "nameLocation": "4637:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2078,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4641:2:8"
+ },
+ "returnParameters": {
+ "id": 2079,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4653:0:8"
+ },
+ "scope": 2103,
+ "src": "4628:170:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2104,
+ "src": "319:4482:8",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40,
+ 1620,
+ 1622,
+ 1624
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:4768:8"
+ },
+ "id": 8
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IFactory.sol",
+ "exportedSymbols": {
+ "IFactory": [
+ 2124
+ ]
+ },
+ "id": 2125,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2105,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:9"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IFactory",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2124,
+ "linearizedBaseContracts": [
+ 2124
+ ],
+ "name": "IFactory",
+ "nameLocation": "70:8:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "4a70f02e",
+ "id": 2114,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenPairs",
+ "nameLocation": "95:13:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2107,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "127:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "119:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2106,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "119:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2109,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "152:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "144:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2108,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "144:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "108:57:9"
+ },
+ "returnParameters": {
+ "id": 2113,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2112,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "184:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2111,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "184:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "183:9:9"
+ },
+ "scope": 2124,
+ "src": "86:107:9",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "e3433615",
+ "id": 2123,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createPool",
+ "nameLocation": "210:10:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2116,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "239:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "231:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "231:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2118,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "264:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "256:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2117,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "256:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "220:57:9"
+ },
+ "returnParameters": {
+ "id": 2122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2121,
+ "mutability": "mutable",
+ "name": "poolPair",
+ "nameLocation": "304:8:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "296:16:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2120,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "296:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "295:18:9"
+ },
+ "scope": 2124,
+ "src": "201:113:9",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2125,
+ "src": "60:257:9",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:284:9"
+ },
+ "id": 9
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "exportedSymbols": {
+ "IPool": [
+ 2166
+ ]
+ },
+ "id": 2167,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2126,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:10"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IPool",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2166,
+ "linearizedBaseContracts": [
+ 2166
+ ],
+ "name": "IPool",
+ "nameLocation": "70:5:10",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "f09a4016",
+ "id": 2133,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "init",
+ "nameLocation": "189:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2131,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2128,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "202:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2133,
+ "src": "194:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2127,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "194:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2130,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "219:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2133,
+ "src": "211:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2129,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "211:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "193:34:10"
+ },
+ "returnParameters": {
+ "id": 2132,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "236:0:10"
+ },
+ "scope": 2166,
+ "src": "180:57:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "6a627842",
+ "id": 2140,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "254:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2136,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2135,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "267:3:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2140,
+ "src": "259:11:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2134,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "259:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "258:13:10"
+ },
+ "returnParameters": {
+ "id": 2139,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2138,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2140,
+ "src": "290:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2137,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "290:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "289:9:10"
+ },
+ "scope": 2166,
+ "src": "245:54:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "74a0f94b",
+ "id": 2149,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "liquidateLpTokens",
+ "nameLocation": "316:17:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2143,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2142,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "352:2:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "344:10:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2141,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "344:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "333:28:10"
+ },
+ "returnParameters": {
+ "id": 2148,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2145,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "388:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "380:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2144,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "380:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2147,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "405:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "397:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2146,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "397:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "379:34:10"
+ },
+ "scope": 2166,
+ "src": "307:107:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "b9cf5005",
+ "id": 2156,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenReserves",
+ "nameLocation": "431:16:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2150,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "447:2:10"
+ },
+ "returnParameters": {
+ "id": 2155,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2152,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2156,
+ "src": "473:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "473:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2154,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2156,
+ "src": "482:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2153,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "482:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "472:18:10"
+ },
+ "scope": 2166,
+ "src": "422:69:10",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "6d9a640a",
+ "id": 2165,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swap",
+ "nameLocation": "508:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2163,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2158,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "531:10:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "523:18:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "523:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2160,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "560:10:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "552:18:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2159,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "552:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2162,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "589:2:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "581:10:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2161,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "581:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "512:112:10"
+ },
+ "returnParameters": {
+ "id": 2164,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "633:0:10"
+ },
+ "scope": 2166,
+ "src": "499:135:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2167,
+ "src": "60:577:10",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:604:10"
+ },
+ "id": 10
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IWedu.sol",
+ "exportedSymbols": {
+ "IWEDU": [
+ 2186
+ ]
+ },
+ "id": 2187,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2168,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:11"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IWEDU",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2186,
+ "linearizedBaseContracts": [
+ 2186
+ ],
+ "name": "IWEDU",
+ "nameLocation": "70:5:11",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "d0e30db0",
+ "id": 2171,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deposit",
+ "nameLocation": "92:7:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2169,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "99:2:11"
+ },
+ "returnParameters": {
+ "id": 2170,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "118:0:11"
+ },
+ "scope": 2186,
+ "src": "83:36:11",
+ "stateMutability": "payable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "a9059cbb",
+ "id": 2180,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "136:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2176,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2173,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "153:2:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "145:10:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2172,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "145:7:11",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2175,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "162:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "157:10:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2174,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "157:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "144:24:11"
+ },
+ "returnParameters": {
+ "id": 2179,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2178,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "187:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2177,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "187:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "186:6:11"
+ },
+ "scope": 2186,
+ "src": "127:66:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "2e1a7d4d",
+ "id": 2185,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "withdraw",
+ "nameLocation": "210:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2183,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2182,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2185,
+ "src": "219:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2181,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "219:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "218:6:11"
+ },
+ "returnParameters": {
+ "id": 2184,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "233:0:11"
+ },
+ "scope": 2186,
+ "src": "201:33:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2187,
+ "src": "60:177:11",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:204:11"
+ },
+ "id": 11
+ },
+ "contracts/core/libraries/Library.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/libraries/Library.sol",
+ "exportedSymbols": {
+ "DefiLibrary": [
+ 2295
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 2190
+ ],
+ "PoolFactory__ZeroAddress": [
+ 2192
+ ]
+ },
+ "id": 2296,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2188,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:12"
+ },
+ {
+ "errorSelector": "4bea99d9",
+ "id": 2190,
+ "name": "PoolFactory__IdenticalAddress",
+ "nameLocation": "66:29:12",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 2189,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "95:2:12"
+ },
+ "src": "60:38:12"
+ },
+ {
+ "errorSelector": "74b959e9",
+ "id": 2192,
+ "name": "PoolFactory__ZeroAddress",
+ "nameLocation": "106:24:12",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 2191,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "130:2:12"
+ },
+ "src": "100:33:12"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "DefiLibrary",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2295,
+ "linearizedBaseContracts": [
+ 2295
+ ],
+ "name": "DefiLibrary",
+ "nameLocation": "145:11:12",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2235,
+ "nodeType": "Block",
+ "src": "397:341:12",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2203,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "412:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2204,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "422:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "412:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2209,
+ "nodeType": "IfStatement",
+ "src": "408:60:12",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 2206,
+ "name": "PoolFactory__IdenticalAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2190,
+ "src": "437:29:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 2207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "437:31:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2208,
+ "nodeType": "RevertStatement",
+ "src": "430:38:12"
+ }
+ },
+ {
+ "expression": {
+ "id": 2223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 2210,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2199,
+ "src": "480:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2211,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2201,
+ "src": "488:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2212,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "479:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2213,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "498:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2214,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "507:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "498:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "id": 2219,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "562:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2220,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "570:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2221,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "561:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "id": 2222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "498:79:12",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 2216,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "530:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2217,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "538:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2218,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "529:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "src": "479:98:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2224,
+ "nodeType": "ExpressionStatement",
+ "src": "479:98:12"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2225,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2199,
+ "src": "675:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "693:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "685:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2226,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "685:7:12",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "685:10:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "675:20:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2234,
+ "nodeType": "IfStatement",
+ "src": "671:59:12",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 2231,
+ "name": "PoolFactory__ZeroAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2192,
+ "src": "704:24:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 2232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "704:26:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2233,
+ "nodeType": "RevertStatement",
+ "src": "697:33:12"
+ }
+ }
+ ]
+ },
+ "id": 2236,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sortTokens",
+ "nameLocation": "274:10:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2197,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2194,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "303:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "295:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2193,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "295:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2196,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "328:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "320:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2195,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "320:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "284:57:12"
+ },
+ "returnParameters": {
+ "id": 2202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2199,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "373:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "365:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2198,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "365:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2201,
+ "mutability": "mutable",
+ "name": "token1",
+ "nameLocation": "389:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "381:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2200,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "381:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "364:32:12"
+ },
+ "scope": 2295,
+ "src": "265:473:12",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2293,
+ "nodeType": "Block",
+ "src": "1077:437:12",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2248,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2238,
+ "src": "1096:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2249,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1107:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1096:12:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54",
+ "id": 2251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1110:45:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\""
+ }
+ ],
+ "id": 2247,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "1088:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1088:68:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2253,
+ "nodeType": "ExpressionStatement",
+ "src": "1088:68:12"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2255,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2240,
+ "src": "1189:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1201:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1189:13:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2258,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2242,
+ "src": "1206:10:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1219:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1206:14:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1189:31:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459",
+ "id": 2262,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1235:42:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ }
+ ],
+ "id": 2254,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "1167:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2263,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1167:121:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2264,
+ "nodeType": "ExpressionStatement",
+ "src": "1167:121:12"
+ },
+ {
+ "assignments": [
+ 2266
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2266,
+ "mutability": "mutable",
+ "name": "amountInWithFee",
+ "nameLocation": "1304:15:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1299:20:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2265,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1299:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2270,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2269,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2267,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2238,
+ "src": "1322:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "393937",
+ "id": 2268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1333:3:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_997_by_1",
+ "typeString": "int_const 997"
+ },
+ "value": "997"
+ },
+ "src": "1322:14:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1299:37:12"
+ },
+ {
+ "assignments": [
+ 2272
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2272,
+ "mutability": "mutable",
+ "name": "numerator",
+ "nameLocation": "1352:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1347:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2271,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1347:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2276,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2273,
+ "name": "amountInWithFee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2266,
+ "src": "1364:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 2274,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2242,
+ "src": "1382:10:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1364:28:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1347:45:12"
+ },
+ {
+ "assignments": [
+ 2278
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2278,
+ "mutability": "mutable",
+ "name": "denominator",
+ "nameLocation": "1408:11:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1403:16:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2277,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1403:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2286,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2279,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2240,
+ "src": "1423:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "31303030",
+ "id": 2280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1435:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "value": "1000"
+ },
+ "src": "1423:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2282,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1422:18:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "id": 2283,
+ "name": "amountInWithFee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2266,
+ "src": "1444:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2284,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1443:17:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1422:38:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1403:57:12"
+ },
+ {
+ "expression": {
+ "id": 2291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2287,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2245,
+ "src": "1471:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2288,
+ "name": "numerator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2272,
+ "src": "1483:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 2289,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2278,
+ "src": "1495:11:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1483:23:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1471:35:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2292,
+ "nodeType": "ExpressionStatement",
+ "src": "1471:35:12"
+ }
+ ]
+ },
+ "id": 2294,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getAmountOut",
+ "nameLocation": "943:12:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2243,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2238,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "971:8:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "966:13:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2237,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "966:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2240,
+ "mutability": "mutable",
+ "name": "reserveIn",
+ "nameLocation": "995:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "990:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2239,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "990:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2242,
+ "mutability": "mutable",
+ "name": "reserveOut",
+ "nameLocation": "1020:10:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "1015:15:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2241,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1015:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "955:82:12"
+ },
+ "returnParameters": {
+ "id": 2246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2245,
+ "mutability": "mutable",
+ "name": "amountOut",
+ "nameLocation": "1066:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "1061:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2244,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1061:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1060:16:12"
+ },
+ "scope": 2295,
+ "src": "934:580:12",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 2296,
+ "src": "137:1380:12",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:1484:12"
+ },
+ "id": 12
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol",
+ "exportedSymbols": {
+ "AppleToken": [
+ 2322
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 2323,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2297,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:13"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2298,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2323,
+ "sourceUnit": 652,
+ "src": "61:55:13",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2299,
+ "name": "ERC20",
+ "nameLocations": [
+ "143:5:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "143:5:13"
+ },
+ "id": 2300,
+ "nodeType": "InheritanceSpecifier",
+ "src": "143:5:13"
+ }
+ ],
+ "canonicalName": "AppleToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2322,
+ "linearizedBaseContracts": [
+ 2322,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "AppleToken",
+ "nameLocation": "129:10:13",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2307,
+ "nodeType": "Block",
+ "src": "192:2:13",
+ "statements": []
+ },
+ "id": 2308,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4170706c65",
+ "id": 2303,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "176:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1",
+ "typeString": "literal_string \"Apple\""
+ },
+ "value": "Apple"
+ },
+ {
+ "hexValue": "415054",
+ "id": 2304,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "185:5:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1",
+ "typeString": "literal_string \"APT\""
+ },
+ "value": "APT"
+ }
+ ],
+ "id": 2305,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2302,
+ "name": "ERC20",
+ "nameLocations": [
+ "170:5:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "170:5:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "170:21:13"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2301,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "167:2:13"
+ },
+ "returnParameters": {
+ "id": 2306,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "192:0:13"
+ },
+ "scope": 2322,
+ "src": "156:38:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2320,
+ "nodeType": "Block",
+ "src": "252:37:13",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2316,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2310,
+ "src": "269:3:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2317,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2312,
+ "src": "274:6:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2315,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "263:5:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "263:18:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2319,
+ "nodeType": "ExpressionStatement",
+ "src": "263:18:13"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2321,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "211:4:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2310,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "224:3:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 2321,
+ "src": "216:11:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2309,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "216:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2312,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "237:6:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 2321,
+ "src": "229:14:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2311,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "229:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "215:29:13"
+ },
+ "returnParameters": {
+ "id": 2314,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "252:0:13"
+ },
+ "scope": 2322,
+ "src": "202:87:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2323,
+ "src": "120:205:13",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:292:13"
+ },
+ "id": 13
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "exportedSymbols": {
+ "CherryToken": [
+ 2349
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 2350,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2324,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:14"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2325,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2350,
+ "sourceUnit": 652,
+ "src": "61:55:14",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2326,
+ "name": "ERC20",
+ "nameLocations": [
+ "144:5:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "144:5:14"
+ },
+ "id": 2327,
+ "nodeType": "InheritanceSpecifier",
+ "src": "144:5:14"
+ }
+ ],
+ "canonicalName": "CherryToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2349,
+ "linearizedBaseContracts": [
+ 2349,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "CherryToken",
+ "nameLocation": "129:11:14",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2334,
+ "nodeType": "Block",
+ "src": "194:2:14",
+ "statements": []
+ },
+ "id": 2335,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "436865727279",
+ "id": 2330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "177:8:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f",
+ "typeString": "literal_string \"Cherry\""
+ },
+ "value": "Cherry"
+ },
+ {
+ "hexValue": "434854",
+ "id": 2331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "187:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18",
+ "typeString": "literal_string \"CHT\""
+ },
+ "value": "CHT"
+ }
+ ],
+ "id": 2332,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2329,
+ "name": "ERC20",
+ "nameLocations": [
+ "171:5:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "171:5:14"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "171:22:14"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2328,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "168:2:14"
+ },
+ "returnParameters": {
+ "id": 2333,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "194:0:14"
+ },
+ "scope": 2349,
+ "src": "157:39:14",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2347,
+ "nodeType": "Block",
+ "src": "254:37:14",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2343,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2337,
+ "src": "271:3:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2344,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2339,
+ "src": "276:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2342,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "265:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "265:18:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2346,
+ "nodeType": "ExpressionStatement",
+ "src": "265:18:14"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2348,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "213:4:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2340,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2337,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "226:3:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 2348,
+ "src": "218:11:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2336,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "218:7:14",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2339,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "239:6:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 2348,
+ "src": "231:14:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2338,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "231:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "217:29:14"
+ },
+ "returnParameters": {
+ "id": 2341,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "254:0:14"
+ },
+ "scope": 2349,
+ "src": "204:87:14",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2350,
+ "src": "120:207:14",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:294:14"
+ },
+ "id": 14
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "WrappedEduToken": [
+ 2376
+ ]
+ },
+ "id": 2377,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2351,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:15"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2352,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2377,
+ "sourceUnit": 652,
+ "src": "61:55:15",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2353,
+ "name": "ERC20",
+ "nameLocations": [
+ "148:5:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "148:5:15"
+ },
+ "id": 2354,
+ "nodeType": "InheritanceSpecifier",
+ "src": "148:5:15"
+ }
+ ],
+ "canonicalName": "WrappedEduToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2376,
+ "linearizedBaseContracts": [
+ 2376,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "WrappedEduToken",
+ "nameLocation": "129:15:15",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2361,
+ "nodeType": "Block",
+ "src": "203:2:15",
+ "statements": []
+ },
+ "id": 2362,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "57726170706564456475",
+ "id": 2357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "181:12:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479",
+ "typeString": "literal_string \"WrappedEdu\""
+ },
+ "value": "WrappedEdu"
+ },
+ {
+ "hexValue": "57454455",
+ "id": 2358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "195:6:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03",
+ "typeString": "literal_string \"WEDU\""
+ },
+ "value": "WEDU"
+ }
+ ],
+ "id": 2359,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2356,
+ "name": "ERC20",
+ "nameLocations": [
+ "175:5:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "175:5:15"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "175:27:15"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2355,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "172:2:15"
+ },
+ "returnParameters": {
+ "id": 2360,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "203:0:15"
+ },
+ "scope": 2376,
+ "src": "161:44:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2374,
+ "nodeType": "Block",
+ "src": "372:37:15",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2370,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2364,
+ "src": "389:3:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2371,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2366,
+ "src": "394:6:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2369,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "383:5:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "383:18:15",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2373,
+ "nodeType": "ExpressionStatement",
+ "src": "383:18:15"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2375,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "331:4:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2367,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2364,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "344:3:15",
+ "nodeType": "VariableDeclaration",
+ "scope": 2375,
+ "src": "336:11:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2363,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "336:7:15",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2366,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "357:6:15",
+ "nodeType": "VariableDeclaration",
+ "scope": 2375,
+ "src": "349:14:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2365,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "349:7:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "335:29:15"
+ },
+ "returnParameters": {
+ "id": 2368,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "372:0:15"
+ },
+ "scope": 2376,
+ "src": "322:87:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2377,
+ "src": "120:325:15",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:412:15"
+ },
+ "id": 15
+ }
+ },
+ "contracts": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "IERC1155Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "idsLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "valuesLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InvalidArrayLength",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155MissingApprovalForAll",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC20Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC721Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721IncorrectOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC721InsufficientApproval",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC721NonexistentToken",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "ERC20": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "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.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "IERC20": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "IERC20Metadata": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "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.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "Context": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Factory.sol": {
+ "PoolFactory": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__NotSetter",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__PoolExists",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "addToFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "getTokenPairs",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiver",
+ "type": "address"
+ }
+ ],
+ "name": "setFeeReceiver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_832": {
+ "entryPoint": null,
+ "id": 832,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 221,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address_fromMemory": {
+ "entryPoint": 242,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 180,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 148,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 143,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 198,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:1199:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "759:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "769:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "784:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "778:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "778:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "769:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "827:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "800:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "800:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "800:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "737:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "745:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "753:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "922:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "968:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "970:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "970:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "970:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "943:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "952:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "939:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "939:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "964:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "935:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "935:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "932:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1061:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1076:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1090:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1080:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1105:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1151:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1162:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1147:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1147:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1171:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1115:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1115:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1105:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "892:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "903:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "915:6:16",
+ "type": ""
+ }
+ ],
+ "src": "845:351:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ",
+ "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@addToFeeReceiverSetter_986": {
+ "entryPoint": 571,
+ "id": 986,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "@checkIfSetter_1018": {
+ "entryPoint": 2042,
+ "id": 1018,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@createPool_942": {
+ "entryPoint": 671,
+ "id": 942,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getTokenPairs_958": {
+ "entryPoint": 404,
+ "id": 958,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@removeFromFeeReceiverSetter_1001": {
+ "entryPoint": 303,
+ "id": 1001,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "@setFeeReceiver_971": {
+ "entryPoint": 1965,
+ "id": 971,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 2279,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 2302,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 2352,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 2423,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
+ "entryPoint": 2522,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": 2549,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 2440,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 2597,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 2642,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2233,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2201,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "leftAlign_t_address": {
+ "entryPoint": 2502,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "leftAlign_t_uint160": {
+ "entryPoint": 2482,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2196,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "shift_left_96": {
+ "entryPoint": 2469,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 2253,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:3663:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "748:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "758:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "780:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "767:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "767:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "758:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "823:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "796:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "796:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "796:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "726:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "734:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "742:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "907:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "953:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "955:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "955:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "955:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "928:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "937:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "924:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "924:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "949:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "920:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "920:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "917:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1046:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1061:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1075:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1065:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1090:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1125:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1136:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1121:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1121:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1145:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1100:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1100:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1090:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "877:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "888:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "900:6:16",
+ "type": ""
+ }
+ ],
+ "src": "841:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1259:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1305:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "1307:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1307:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1307:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1280:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1289:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1276:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1276:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1301:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1269:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1398:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1413:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1427:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1417:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1442:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1477:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1488:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1473:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1473:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1497:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1452:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1452:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1442:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1525:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1540:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1554:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1544:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1570:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1605:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1616:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1601:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1601:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1625:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1580:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1580:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1570:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1221:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1232:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1244:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1252:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1176:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "1738:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1761:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1743:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1743:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1731:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1731:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1731:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1709:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "1716:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1656:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1878:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1888:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1900:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1911:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1896:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1896:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1888:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1968:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1981:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1992:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1977:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1977:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1924:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1924:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1924:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1850:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1862:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1873:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1780:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2050:52:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2060:35:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2085:2:16",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2089:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "2081:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2081:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "2060:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2031:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "2041:8:16",
+ "type": ""
+ }
+ ],
+ "src": "2008:94:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2155:47:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2165:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2190:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_96",
+ "nodeType": "YulIdentifier",
+ "src": "2176:13:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2176:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "aligned",
+ "nodeType": "YulIdentifier",
+ "src": "2165:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "leftAlign_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2137:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "aligned",
+ "nodeType": "YulTypedName",
+ "src": "2147:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2108:94:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2255:53:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2265:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2296:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "leftAlign_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "2276:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2276:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "aligned",
+ "nodeType": "YulIdentifier",
+ "src": "2265:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "leftAlign_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2237:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "aligned",
+ "nodeType": "YulTypedName",
+ "src": "2247:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2208:100:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2397:74:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2414:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2457:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2439:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2439:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "leftAlign_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2419:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2419:45:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2407:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2407:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2407:58:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2385:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2392:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2314:157:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2621:253:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2694:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2703:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2632:61:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2632:75:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2632:75:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2716:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2727:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2732:2:16",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2723:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2723:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2716:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2807:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2816:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2745:61:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2745:75:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2745:75:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2829:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2840:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2845:2:16",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2829:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2858:10:16",
+ "value": {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2865:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2858:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2592:3:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2598:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2606:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2617:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2477:397:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3006:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3016:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3028:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3039:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3024:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3024:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3016:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3096:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3109:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3120:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3105:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3105:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3052:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3052:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3052:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "3177:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3190:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3201:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3186:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3186:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3133:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2970:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2982:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2990:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3001:4:16",
+ "type": ""
+ }
+ ],
+ "src": "2880:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3372:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3382:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3394:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3405:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3390:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3390:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3382:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3462:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3475:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3486:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3471:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3471:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3418:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3418:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "3543:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3556:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3567:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3552:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3552:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3499:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3499:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3499:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "3625:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3638:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3649:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3634:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3634:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3581:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3581:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3581:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3328:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3340:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3348:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3356:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3367:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3218:442:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ",
+ "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "addToFeeReceiverSetter(address)": "5ac40ab3",
+ "createPool(address,address)": "e3433615",
+ "getTokenPairs(address,address)": "4a70f02e",
+ "removeFromFeeReceiverSetter(address)": "48397023",
+ "setFeeReceiver(address)": "efdcd974"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "LiquidityProvider": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_factoryAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WEDU",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenADesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenBDesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenB",
+ "type": "uint256"
+ }
+ ],
+ "name": "addLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "pair",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "getAmountsOut",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "swapExactTokensForTokens",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_1052": {
+ "entryPoint": null,
+ "id": 1052,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 250,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address_fromMemory": {
+ "entryPoint": 273,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 204,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 172,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 167,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 224,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:1355:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "759:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "769:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "784:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "778:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "778:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "769:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "827:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "800:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "800:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "800:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "737:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "745:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "753:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "939:413:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "985:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "987:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "987:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "987:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "960:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "969:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "956:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "956:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "981:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "952:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "952:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "949:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1078:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1093:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1107:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1097:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1122:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1168:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1179:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1164:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1164:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1188:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1132:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1132:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1122:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1216:129:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1231:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1245:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1235:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1261:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1307:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1318:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1303:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1303:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1327:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1271:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1271:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1261:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "901:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "912:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "924:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "932:6:16",
+ "type": ""
+ }
+ ],
+ "src": "845:507:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ",
+ "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_addLiquidity_1185": {
+ "entryPoint": 1933,
+ "id": 1185,
+ "parameterSlots": 6,
+ "returnSlots": 2
+ },
+ "@_swap_1350": {
+ "entryPoint": 2677,
+ "id": 1350,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@addLiquidity_1260": {
+ "entryPoint": 216,
+ "id": 1260,
+ "parameterSlots": 6,
+ "returnSlots": 3
+ },
+ "@getAmountOut_2294": {
+ "entryPoint": 3071,
+ "id": 2294,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@getAmountsOut_1536": {
+ "entryPoint": 1503,
+ "id": 1536,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@quote_1460": {
+ "entryPoint": 3305,
+ "id": 1460,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@sortTokens_2236": {
+ "entryPoint": 3484,
+ "id": 2236,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "@swapExactTokensForTokens_1421": {
+ "entryPoint": 802,
+ "id": 1421,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4770,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3859,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 5088,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_array$_t_address_$dyn_calldata_ptr": {
+ "entryPoint": 4160,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4875,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_bool_fromMemory": {
+ "entryPoint": 5244,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3913,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256_fromMemory": {
+ "entryPoint": 5337,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 5450,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address_fromMemory": {
+ "entryPoint": 5109,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": {
+ "entryPoint": 3934,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 6
+ },
+ "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4921,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 5265,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 5358,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256t_uint256_fromMemory": {
+ "entryPoint": 5719,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": {
+ "entryPoint": 4246,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 4
+ },
+ "abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
+ "entryPoint": 4421,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 5032,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
+ "entryPoint": 4458,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 5652,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6234,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6542,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6088,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256": {
+ "entryPoint": 4406,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 4075,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 5310,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 5047,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
+ "entryPoint": 5154,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
+ "entryPoint": 4552,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 5687,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6269,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6577,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6123,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": {
+ "entryPoint": 5954,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 4090,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "allocate_memory": {
+ "entryPoint": 4699,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": 3766,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4726,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4390,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4362,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4445,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
+ "entryPoint": 4373,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 5594,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 5783,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_div_t_uint256": {
+ "entryPoint": 6414,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_mul_t_uint256": {
+ "entryPoint": 6301,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_sub_t_uint256": {
+ "entryPoint": 5542,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 3818,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 5209,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 3786,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3880,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "finalize_allocation": {
+ "entryPoint": 4650,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "increment_t_uint256": {
+ "entryPoint": 5835,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x01": {
+ "entryPoint": 5907,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x11": {
+ "entryPoint": 5495,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x12": {
+ "entryPoint": 6367,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x32": {
+ "entryPoint": 5403,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 4603,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": {
+ "entryPoint": 4150,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
+ "entryPoint": 4145,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
+ "entryPoint": 4155,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": 3781,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 3776,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 4586,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": {
+ "entryPoint": 5611,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": {
+ "entryPoint": 6155,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": {
+ "entryPoint": 6463,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": {
+ "entryPoint": 6009,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3836,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_bool": {
+ "entryPoint": 5221,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3890,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:20048:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "748:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "758:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "780:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "767:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "767:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "758:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "823:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "796:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "796:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "796:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "726:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "734:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "742:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "886:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "896:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "907:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "896:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "868:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "878:7:16",
+ "type": ""
+ }
+ ],
+ "src": "841:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "967:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1024:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1033:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1026:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1026:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1026:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "990:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1015:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "997:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "997:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "987:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "987:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "980:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "980:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "977:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "960:5:16",
+ "type": ""
+ }
+ ],
+ "src": "924:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1104:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1114:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1136:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "1123:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1123:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1114:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1179:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1152:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1152:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1152:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1082:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "1090:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1098:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1052:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1348:906:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1395:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "1397:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1397:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1397:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1369:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1378:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1365:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1365:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1390:3:16",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1361:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1361:33:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1358:120:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1488:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1503:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1517:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1507:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1532:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1567:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1578:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1563:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1563:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1587:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1542:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1542:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1532:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1615:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1630:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1644:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1634:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1660:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1695:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1706:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1691:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1691:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1715:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1670:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1670:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1660:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1743:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1758:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1772:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1762:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1788:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1823:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1834:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1819:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1819:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1843:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1798:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1798:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "1788:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1871:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1886:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1900:2:16",
+ "type": "",
+ "value": "96"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1890:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1916:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1951:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1962:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1947:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1947:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1971:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1926:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1926:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "1916:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1999:119:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2014:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2028:3:16",
+ "type": "",
+ "value": "128"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2018:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2045:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2080:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2091:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2076:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2076:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2100:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2055:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2055:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value4",
+ "nodeType": "YulIdentifier",
+ "src": "2045:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2128:119:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2143:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2157:3:16",
+ "type": "",
+ "value": "160"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2147:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2174:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2209:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2220:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2205:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2205:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2229:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2184:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2184:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value5",
+ "nodeType": "YulIdentifier",
+ "src": "2174:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1278:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1289:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1301:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1309:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "1317:6:16",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "1325:6:16",
+ "type": ""
+ },
+ {
+ "name": "value4",
+ "nodeType": "YulTypedName",
+ "src": "1333:6:16",
+ "type": ""
+ },
+ {
+ "name": "value5",
+ "nodeType": "YulTypedName",
+ "src": "1341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1197:1057:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2325:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2342:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2365:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2347:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2347:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2335:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2335:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2335:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2313:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2320:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2260:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2538:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2548:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2560:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2571:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2556:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2556:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "2548:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2628:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2641:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2652:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2637:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2637:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2584:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2584:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2584:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2709:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2722:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2733:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2718:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2718:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2665:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2665:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2665:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "2791:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2804:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2815:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2800:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2800:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2747:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2747:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2747:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2494:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "2506:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2514:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2522:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "2533:4:16",
+ "type": ""
+ }
+ ],
+ "src": "2384:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2921:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2938:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2941:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2931:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2931:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2931:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulFunctionDefinition",
+ "src": "2832:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3044:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3061:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3064:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3054:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3054:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3054:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
+ "nodeType": "YulFunctionDefinition",
+ "src": "2955:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3167:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3184:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3187:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3177:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3177:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3177:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulFunctionDefinition",
+ "src": "3078:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3308:478:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3357:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulIdentifier",
+ "src": "3359:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3359:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3359:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3336:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3344:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3332:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3332:17:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "3351:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3328:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3328:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3321:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3321:35:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3318:122:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3449:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3472:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "3459:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3459:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3449:6:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3522:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
+ "nodeType": "YulIdentifier",
+ "src": "3524:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3524:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3524:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3494:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3502:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3491:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3491:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3488:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3614:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3630:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3638:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3626:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3626:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulIdentifier",
+ "src": "3614:8:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3697:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulIdentifier",
+ "src": "3699:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3699:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3699:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulIdentifier",
+ "src": "3662:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3676:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3684:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3672:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3672:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3658:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3658:32:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "3692:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3655:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3655:41:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3652:128:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "3275:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "3283:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulTypedName",
+ "src": "3291:8:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "3301:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3218:568:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3927:714:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3973:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3975:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3975:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3975:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3948:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3957:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3944:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3944:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3969:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3940:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3940:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3937:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4066:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4081:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4095:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4085:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4110:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4145:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4156:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4141:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4141:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4165:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4120:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4120:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4110:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4193:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4208:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4222:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4212:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4238:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4273:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4284:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4269:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4269:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4293:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4248:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4248:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4238:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4321:313:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4336:46:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4367:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4378:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4363:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4363:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "4350:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4350:32:16"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4340:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4429:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulIdentifier",
+ "src": "4431:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4431:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4431:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4401:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4409:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4398:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4398:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4395:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4526:98:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4596:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4607:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4592:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4592:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4616:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "4544:47:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4544:80:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4526:6:16"
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "4534:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3873:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3884:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3896:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3904:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3912:6:16",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "3920:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3792:849:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4721:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4732:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4748:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4742:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4742:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "4732:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4704:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "4714:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4647:114:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4878:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4895:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "4900:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4888:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4888:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4888:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4916:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4935:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4940:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4931:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4931:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "4916:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4850:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "4855:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "4866:11:16",
+ "type": ""
+ }
+ ],
+ "src": "4767:184:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5029:60:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5039:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5047:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5039:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5060:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5072:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5077:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5068:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5068:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5060:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "5016:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5024:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4957:132:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5150:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5167:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5190:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5172:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5172:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5160:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5160:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5160:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5138:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5145:3:16",
+ "type": ""
+ }
+ ],
+ "src": "5095:108:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5289:99:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5333:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5341:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5299:33:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5299:46:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5299:46:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5354:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5372:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5377:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5368:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updatedPos",
+ "nodeType": "YulIdentifier",
+ "src": "5354:10:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5262:6:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5270:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updatedPos",
+ "nodeType": "YulTypedName",
+ "src": "5278:10:16",
+ "type": ""
+ }
+ ],
+ "src": "5209:179:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5469:38:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5479:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5491:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5496:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5487:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "next",
+ "nodeType": "YulIdentifier",
+ "src": "5479:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "5456:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "next",
+ "nodeType": "YulTypedName",
+ "src": "5464:4:16",
+ "type": ""
+ }
+ ],
+ "src": "5394:113:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5667:608:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5677:68:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5739:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5691:47:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5691:54:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5681:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5754:93:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5835:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5840:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5761:73:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5761:86:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5754:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5856:71:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5921:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5871:49:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5871:56:16"
+ },
+ "variables": [
+ {
+ "name": "baseRef",
+ "nodeType": "YulTypedName",
+ "src": "5860:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5936:21:16",
+ "value": {
+ "name": "baseRef",
+ "nodeType": "YulIdentifier",
+ "src": "5950:7:16"
+ },
+ "variables": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulTypedName",
+ "src": "5940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6026:224:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6040:34:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6067:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "6061:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6061:13:16"
+ },
+ "variables": [
+ {
+ "name": "elementValue0",
+ "nodeType": "YulTypedName",
+ "src": "6044:13:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6087:70:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "elementValue0",
+ "nodeType": "YulIdentifier",
+ "src": "6138:13:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6153:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "6094:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6094:63:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6087:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6170:70:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6233:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "6180:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6180:60:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6170:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "5988:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5991:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "5985:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5985:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "5999:18:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6001:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6010:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6013:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6006:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6006:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6001:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "5970:14:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5972:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5981:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "5976:1:16",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "5966:284:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6259:10:16",
+ "value": {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6266:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "6259:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5646:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5653:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "5662:3:16",
+ "type": ""
+ }
+ ],
+ "src": "5543:732:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6429:225:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6439:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6451:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6462:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6447:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6447:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6439:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6486:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6497:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6482:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6482:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6505:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6511:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6501:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6501:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6475:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6475:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6475:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6531:116:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6633:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6642:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6539:93:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6539:108:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6531:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6401:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6413:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6424:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6281:373:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6708:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6718:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6736:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6743:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6732:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6732:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6752:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "6748:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6748:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6728:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6728:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "6718:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6691:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "6701:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6660:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6796:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6813:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6816:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6806:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6806:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6806:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6910:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6913:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6903:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6903:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6903:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6934:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6937:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "6927:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6927:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6927:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6768:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6997:238:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7007:58:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7059:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "7037:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7037:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7025:40:16"
+ },
+ "variables": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulTypedName",
+ "src": "7011:10:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7176:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "7178:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7178:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7178:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7119:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7131:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7116:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7116:34:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7155:10:16"
+ },
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7167:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "7152:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7152:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "7113:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7113:62:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7110:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7214:2:16",
+ "type": "",
+ "value": "64"
+ },
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7218:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7207:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7207:22:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7207:22:16"
+ }
+ ]
+ },
+ "name": "finalize_allocation",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "6983:6:16",
+ "type": ""
+ },
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "6991:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6954:281:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7282:88:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7292:30:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "allocate_unbounded",
+ "nodeType": "YulIdentifier",
+ "src": "7302:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7302:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7292:6:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7351:6:16"
+ },
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7359:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "finalize_allocation",
+ "nodeType": "YulIdentifier",
+ "src": "7331:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7331:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7331:33:16"
+ }
+ ]
+ },
+ "name": "allocate_memory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "7266:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "7275:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7241:129:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7458:229:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7563:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "7565:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7565:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7565:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7535:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7543:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7532:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7529:56:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7595:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7607:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7615:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "7603:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7603:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7595:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7657:23:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7669:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7675:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7665:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7665:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7657:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "7442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "7453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "7376:311:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7812:608:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7822:90:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7904:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "7847:56:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7847:64:16"
+ }
+ ],
+ "functionName": {
+ "name": "allocate_memory",
+ "nodeType": "YulIdentifier",
+ "src": "7831:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7831:81:16"
+ },
+ "variableNames": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7822:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7921:16:16",
+ "value": {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7932:5:16"
+ },
+ "variables": [
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "7925:3:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7954:5:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7961:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7947:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7947:21:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7947:21:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7977:23:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7988:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7995:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7984:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7984:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "7977:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8010:44:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8028:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "8040:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8048:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "8036:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8036:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8024:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8024:30:16"
+ },
+ "variables": [
+ {
+ "name": "srcEnd",
+ "nodeType": "YulTypedName",
+ "src": "8014:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8082:103:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulIdentifier",
+ "src": "8096:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8096:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8096:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "srcEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8069:6:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8077:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "8066:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8066:15:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8063:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8270:144:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8285:21:16",
+ "value": {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8303:3:16"
+ },
+ "variables": [
+ {
+ "name": "elementPos",
+ "nodeType": "YulTypedName",
+ "src": "8289:10:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8327:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "elementPos",
+ "nodeType": "YulIdentifier",
+ "src": "8353:10:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8365:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "8332:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8332:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8320:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8320:50:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8320:50:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8383:21:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8394:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8399:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8390:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8390:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8383:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8223:3:16"
+ },
+ {
+ "name": "srcEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8228:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "8220:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8220:15:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "8236:25:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8238:21:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8249:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8254:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8245:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8245:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8238:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "8198:21:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8200:17:16",
+ "value": {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8211:6:16"
+ },
+ "variables": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "8204:3:16",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "8194:220:16"
+ }
+ ]
+ },
+ "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7782:6:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "7790:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "7798:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "7806:5:16",
+ "type": ""
+ }
+ ],
+ "src": "7710:710:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8520:293:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8569:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulIdentifier",
+ "src": "8571:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8571:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8571:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8548:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8556:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8544:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8544:17:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8563:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "8540:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8540:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8533:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8533:35:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8530:122:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8661:34:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8688:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "8675:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8675:20:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "8665:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8704:103:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8780:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8788:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8776:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8776:17:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "8795:6:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8803:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "8713:62:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8713:94:16"
+ },
+ "variableNames": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "8704:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "8498:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "8506:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "8514:5:16",
+ "type": ""
+ }
+ ],
+ "src": "8443:370:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8944:704:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8990:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "8992:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8992:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8992:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8965:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8974:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8961:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8961:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8986:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "8957:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8957:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8954:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9083:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9098:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9112:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9102:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9127:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9162:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9173:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9158:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9158:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9182:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "9137:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9137:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9127:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9210:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9225:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9239:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9229:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9255:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9290:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9301:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9286:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9286:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9310:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9265:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9265:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "9255:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9338:303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9353:46:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9384:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9395:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9380:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9380:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9367:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9367:32:16"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9357:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9446:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulIdentifier",
+ "src": "9448:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9448:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9448:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9418:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9426:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "9415:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9415:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9412:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9543:88:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9603:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9614:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9599:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9599:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9623:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "9553:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9553:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "9543:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "8898:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "8909:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "8921:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "8929:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "8937:6:16",
+ "type": ""
+ }
+ ],
+ "src": "8819:829:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9719:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9736:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9759:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "9741:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9741:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "9729:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9729:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9729:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9707:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "9714:3:16",
+ "type": ""
+ }
+ ],
+ "src": "9654:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9904:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9914:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9926:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9937:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9922:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9922:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9914:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9994:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10007:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10018:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10003:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10003:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9950:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9950:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9950:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10075:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10088:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10099:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10084:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10031:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10031:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10031:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9868:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "9880:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9888:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9899:4:16",
+ "type": ""
+ }
+ ],
+ "src": "9778:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10179:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10189:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "10198:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10198:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10189:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10247:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "10220:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10220:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10220:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10157:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "10165:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "10173:5:16",
+ "type": ""
+ }
+ ],
+ "src": "10116:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10342:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10388:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "10390:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10390:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10390:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10363:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10372:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "10359:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10359:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10384:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "10355:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10355:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "10352:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "10481:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10496:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10500:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10525:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10571:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10582:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10567:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10567:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10591:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "10535:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10535:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10525:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10312:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "10323:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10335:6:16",
+ "type": ""
+ }
+ ],
+ "src": "10265:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10776:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10786:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10798:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10809:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10794:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10794:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10786:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10866:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10879:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10890:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10875:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10875:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10822:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10822:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10822:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10947:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10960:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10971:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10956:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10956:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10903:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10903:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10903:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "11029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11042:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11053:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11038:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11038:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10985:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10985:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10985:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10732:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "10744:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "10752:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10760:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "10771:4:16",
+ "type": ""
+ }
+ ],
+ "src": "10622:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11112:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11122:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11147:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11140:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11140:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11133:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11133:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "11122:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11094:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "11104:7:16",
+ "type": ""
+ }
+ ],
+ "src": "11070:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11206:76:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11260:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11269:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11272:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "11262:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11262:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11262:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11229:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11251:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "11236:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11236:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "11226:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11226:32:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11219:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11219:40:16"
+ },
+ "nodeType": "YulIf",
+ "src": "11216:60:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11199:5:16",
+ "type": ""
+ }
+ ],
+ "src": "11166:116:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11348:77:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11358:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "11373:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "11367:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11367:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11358:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11413:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "11389:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11389:30:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11389:30:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "11326:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "11334:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11342:5:16",
+ "type": ""
+ }
+ ],
+ "src": "11288:137:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11505:271:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11551:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "11553:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11553:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11553:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "11526:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11535:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "11522:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11522:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11547:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "11518:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11518:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "11515:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "11644:125:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "11659:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11673:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "11663:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "11688:71:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11731:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "11742:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11727:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11727:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "11751:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "11698:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11698:61:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "11688:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11475:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "11486:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "11498:6:16",
+ "type": ""
+ }
+ ],
+ "src": "11431:345:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11880:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11890:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11902:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11913:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11898:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11898:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11890:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "11970:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11983:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11994:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11979:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "11926:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11926:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11926:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11852:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "11864:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "11875:4:16",
+ "type": ""
+ }
+ ],
+ "src": "11782:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12073:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "12083:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12098:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "12092:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12092:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "12083:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "12141:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "12114:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12114:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12114:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12051:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "12059:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "12067:5:16",
+ "type": ""
+ }
+ ],
+ "src": "12010:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12236:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12282:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "12284:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12284:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12284:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12257:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12266:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "12253:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12253:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12278:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "12249:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12249:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "12246:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "12375:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "12390:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12404:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12394:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "12419:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12465:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12461:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12461:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12485:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "12429:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12429:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "12419:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "12206:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "12217:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "12229:6:16",
+ "type": ""
+ }
+ ],
+ "src": "12159:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12544:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12561:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12564:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "12554:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12554:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12554:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12658:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12661:4:16",
+ "type": "",
+ "value": "0x32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "12651:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12651:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12651:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12682:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12685:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "12675:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12675:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12675:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x32",
+ "nodeType": "YulFunctionDefinition",
+ "src": "12516:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12768:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12814:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "12816:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12816:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12816:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12789:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12798:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "12785:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12785:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12810:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "12781:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12781:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "12778:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "12907:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "12922:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12926:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "12951:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12986:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12997:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12982:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12982:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "13006:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "12961:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12961:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "12951:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "12738:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "12749:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "12761:6:16",
+ "type": ""
+ }
+ ],
+ "src": "12702:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13065:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13082:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13085:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13075:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13075:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13075:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13179:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13182:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13172:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13172:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13172:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13203:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13206:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "13196:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13196:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13196:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "13037:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13268:149:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "13278:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13301:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "13283:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13283:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13278:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13312:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13335:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "13317:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13317:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13312:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13346:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13358:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13361:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "13354:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13354:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "13346:4:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13388:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "13390:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13390:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13390:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "13379:4:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13385:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "13376:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13376:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "13373:37:16"
+ }
+ ]
+ },
+ "name": "checked_sub_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "13254:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "13257:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "diff",
+ "nodeType": "YulTypedName",
+ "src": "13263:4:16",
+ "type": ""
+ }
+ ],
+ "src": "13223:194:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13519:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13536:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "13541:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13529:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13529:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13557:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13576:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13581:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13572:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13572:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "13557:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "13491:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "13496:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "13507:11:16",
+ "type": ""
+ }
+ ],
+ "src": "13423:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13704:74:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "13726:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13734:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13722:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13722:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "13738:32:16",
+ "type": "",
+ "value": "UniswapV2Library: INVALID_PATH"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13715:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13715:56:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13715:56:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "13696:6:16",
+ "type": ""
+ }
+ ],
+ "src": "13598:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13930:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "13940:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14006:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14011:2:16",
+ "type": "",
+ "value": "30"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "13947:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13947:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13940:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14112:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "nodeType": "YulIdentifier",
+ "src": "14023:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14023:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14023:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14125:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14136:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14141:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14132:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14132:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "14125:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "13918:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "13926:3:16",
+ "type": ""
+ }
+ ],
+ "src": "13784:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14327:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "14337:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14349:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14360:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14345:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14345:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14337:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14384:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14395:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14380:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14380:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14403:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14409:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "14399:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14399:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "14373:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14373:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14373:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14429:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14563:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "14437:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14437:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14429:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "14307:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "14322:4:16",
+ "type": ""
+ }
+ ],
+ "src": "14156:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14675:413:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14721:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "14723:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14723:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14723:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "14696:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14705:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "14692:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14692:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14717:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "14688:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14688:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "14685:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "14814:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "14829:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14843:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "14833:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14858:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14904:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "14915:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14900:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14900:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "14924:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "14868:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14868:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "14858:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "14952:129:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "14967:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14981:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "14971:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14997:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15043:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "15054:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15039:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15039:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "15063:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "15007:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15007:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "14997:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "14637:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "14648:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "14660:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "14668:6:16",
+ "type": ""
+ }
+ ],
+ "src": "14581:507:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15138:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15148:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15171:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15153:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15153:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15148:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15182:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15205:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15187:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15187:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15182:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15216:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15227:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15230:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15223:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15223:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "15216:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15256:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "15258:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15258:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15258:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15248:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "15251:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "15245:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15245:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "15242:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "15125:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "15128:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "15134:3:16",
+ "type": ""
+ }
+ ],
+ "src": "15094:191:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15334:190:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15344:33:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15371:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15353:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15353:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15344:5:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15467:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "15469:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15469:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15469:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15392:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15399:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "15389:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15389:77:16"
+ },
+ "nodeType": "YulIf",
+ "src": "15386:103:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15498:20:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15509:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15516:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15505:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15505:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "15498:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "increment_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "15320:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "15330:3:16",
+ "type": ""
+ }
+ ],
+ "src": "15291:233:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15558:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15575:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15578:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15568:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15568:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15568:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15672:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15675:4:16",
+ "type": "",
+ "value": "0x01"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15665:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15665:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15665:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15696:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15699:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "15689:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15689:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15689:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x01",
+ "nodeType": "YulFunctionDefinition",
+ "src": "15530:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15870:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15880:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15892:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15903:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15888:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15888:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "15880:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "15960:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15973:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15984:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15969:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15969:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15916:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15916:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15916:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "16041:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16054:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16065:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16050:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16050:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15997:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15997:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15997:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "16123:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16136:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16147:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16132:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16132:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16079:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16079:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16079:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "15826:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "15838:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "15846:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "15854:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "15865:4:16",
+ "type": ""
+ }
+ ],
+ "src": "15716:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16270:124:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "16292:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16300:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16288:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "16304:34:16",
+ "type": "",
+ "value": "UniswapV2Library: INSUFFICIENT_I"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16281:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16281:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16281:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "16360:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16368:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16356:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16356:15:16"
+ },
+ {
+ "hexValue": "4e5055545f414d4f554e54",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "16373:13:16",
+ "type": "",
+ "value": "NPUT_AMOUNT"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16349:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16349:38:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16349:38:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "16262:6:16",
+ "type": ""
+ }
+ ],
+ "src": "16164:230:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16546:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16556:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16622:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16627:2:16",
+ "type": "",
+ "value": "43"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16563:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16563:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16556:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16728:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "nodeType": "YulIdentifier",
+ "src": "16639:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16639:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16639:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "16741:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16752:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16757:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16748:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16748:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "16741:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "16534:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "16542:3:16",
+ "type": ""
+ }
+ ],
+ "src": "16400:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16943:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16953:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16965:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16976:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16961:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16961:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16953:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17000:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17011:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16996:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16996:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17019:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17025:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "17015:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17015:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16989:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16989:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16989:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "17045:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17179:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "17053:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17053:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17045:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "16923:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "16938:4:16",
+ "type": ""
+ }
+ ],
+ "src": "16772:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17303:121:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "17325:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17333:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17321:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17321:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "17337:34:16",
+ "type": "",
+ "value": "UniswapV2Library: INSUFFICIENT_L"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "17314:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17314:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17314:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "17393:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17401:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17389:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17389:15:16"
+ },
+ {
+ "hexValue": "4951554944495459",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "17406:10:16",
+ "type": "",
+ "value": "IQUIDITY"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "17382:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17382:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17382:35:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "17295:6:16",
+ "type": ""
+ }
+ ],
+ "src": "17197:227:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17576:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "17586:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17652:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17657:2:16",
+ "type": "",
+ "value": "40"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "17593:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17593:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17586:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17758:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "nodeType": "YulIdentifier",
+ "src": "17669:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17669:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17669:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "17771:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17782:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17787:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17778:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17778:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "17771:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "17564:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "17572:3:16",
+ "type": ""
+ }
+ ],
+ "src": "17430:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17973:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "17983:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17995:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18006:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17991:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17991:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17983:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "18030:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18041:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "18026:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18026:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18049:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "18055:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "18045:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18045:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18019:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18019:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18019:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18075:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18209:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "18083:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18083:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18075:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "17953:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "17968:4:16",
+ "type": ""
+ }
+ ],
+ "src": "17802:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18275:362:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "18285:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18308:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18290:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18290:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18285:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18319:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18342:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18324:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18324:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18319:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "18353:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18376:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18379:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "18372:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18372:9:16"
+ },
+ "variables": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulTypedName",
+ "src": "18357:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18390:41:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulIdentifier",
+ "src": "18419:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18401:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18401:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "18390:7:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18608:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "18610:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18610:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18610:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18541:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18534:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18534:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18564:1:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "18571:7:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18580:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "18567:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18567:15:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "18561:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18561:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "18514:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18514:83:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18494:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18494:113:16"
+ },
+ "nodeType": "YulIf",
+ "src": "18491:139:16"
+ }
+ ]
+ },
+ "name": "checked_mul_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "18258:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "18261:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "product",
+ "nodeType": "YulTypedName",
+ "src": "18267:7:16",
+ "type": ""
+ }
+ ],
+ "src": "18227:410:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18671:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18688:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18691:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18681:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18681:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18681:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18785:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18788:4:16",
+ "type": "",
+ "value": "0x12"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18778:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18778:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18778:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18809:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18812:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "18802:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18802:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18802:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x12",
+ "nodeType": "YulFunctionDefinition",
+ "src": "18643:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18871:143:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "18881:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18904:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18886:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18886:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18881:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18915:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18938:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18920:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18920:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18915:1:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18962:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x12",
+ "nodeType": "YulIdentifier",
+ "src": "18964:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18964:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18964:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18959:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18952:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18952:9:16"
+ },
+ "nodeType": "YulIf",
+ "src": "18949:35:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18994:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "19003:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "19006:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "18999:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18999:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nodeType": "YulIdentifier",
+ "src": "18994:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checked_div_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "18860:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "18863:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "r",
+ "nodeType": "YulTypedName",
+ "src": "18869:1:16",
+ "type": ""
+ }
+ ],
+ "src": "18829:185:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19126:122:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "19148:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19156:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19144:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19144:14:16"
+ },
+ {
+ "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "19160:34:16",
+ "type": "",
+ "value": "UniswapV2DefiLibrary: INSUFFICIE"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19137:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19137:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19137:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "19216:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19224:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19212:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19212:15:16"
+ },
+ {
+ "hexValue": "4e545f414d4f554e54",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "19229:11:16",
+ "type": "",
+ "value": "NT_AMOUNT"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19205:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19205:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19205:36:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "19118:6:16",
+ "type": ""
+ }
+ ],
+ "src": "19020:228:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19400:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "19410:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19476:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19481:2:16",
+ "type": "",
+ "value": "41"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "19417:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19417:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19410:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19582:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "nodeType": "YulIdentifier",
+ "src": "19493:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19493:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19493:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "19595:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19606:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19611:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19602:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "19595:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "19388:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "19396:3:16",
+ "type": ""
+ }
+ ],
+ "src": "19254:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19797:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "19807:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19819:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19830:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19815:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19815:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19807:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19854:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19865:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19850:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19850:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19873:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19879:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "19869:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19869:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19843:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19843:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19843:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "19899:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "20033:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "19907:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19907:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19899:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "19777:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "19792:4:16",
+ "type": ""
+ }
+ ],
+ "src": "19626:419:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {
+ "1034": [
+ {
+ "length": 32,
+ "start": 247
+ },
+ {
+ "length": 32,
+ "start": 808
+ },
+ {
+ "length": 32,
+ "start": 1940
+ },
+ {
+ "length": 32,
+ "start": 2152
+ }
+ ]
+ },
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ",
+ "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o"
+ },
+ "methodIdentifiers": {
+ "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f",
+ "getAmountsOut(address,uint256,address[])": "bb7b9c76",
+ "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Math.sol": {
+ "Math": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ",
+ "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ",
+ "sourceMap": "115:540:7:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Pool.sol": {
+ "Pool": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__InsufficientFunds",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__InsufficientLiquidity",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__NotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "MINIMUM_LIQUIDITY",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenReserves",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "init",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "liquidateLpTokens",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "swap",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "sync",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_1659": {
+ "entryPoint": null,
+ "id": 1659,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 380,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 222,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 701,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 516,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 662,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 536,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 856,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 401,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 327,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 826,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 526,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 794,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 280,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 233,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 576,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 417,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 781,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 634,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 430,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 586,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 629,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033",
+ "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ",
+ "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@MINIMUM_LIQUIDITY_1640": {
+ "entryPoint": 3762,
+ "id": 1640,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@_approve_542": {
+ "entryPoint": 4500,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 5335,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_burn_524": {
+ "entryPoint": 5205,
+ "id": 524,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 5032,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 4492,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 4518,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 4666,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_1699": {
+ "entryPoint": 5187,
+ "id": 1699,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 5806,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 3768,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 991,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 2461,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 1083,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@getTokenReserves_2077": {
+ "entryPoint": 3745,
+ "id": 2077,
+ "parameterSlots": 0,
+ "returnSlots": 2
+ },
+ "@init_1683": {
+ "entryPoint": 3903,
+ "id": 1683,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@liquidateLpTokens_1958": {
+ "entryPoint": 2533,
+ "id": 1958,
+ "parameterSlots": 1,
+ "returnSlots": 2
+ },
+ "@min_1558": {
+ "entryPoint": 5162,
+ "id": 1558,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@mint_1816": {
+ "entryPoint": 1092,
+ "id": 1816,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@name_197": {
+ "entryPoint": 845,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@sqrt_1612": {
+ "entryPoint": 4910,
+ "id": 1612,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@swap_2065": {
+ "entryPoint": 1681,
+ "id": 2065,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@symbol_206": {
+ "entryPoint": 3564,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@sync_2102": {
+ "entryPoint": 4170,
+ "id": 2102,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@totalSupply_224": {
+ "entryPoint": 1026,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 1036,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 3710,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 6611,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_bool_fromMemory": {
+ "entryPoint": 7746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 6665,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256_fromMemory": {
+ "entryPoint": 7355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 6984,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 7153,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 6846,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 6686,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 7767,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 7376,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256t_uint256t_address": {
+ "entryPoint": 7029,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 7313,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 6762,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 6804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 6942,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 7328,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
+ "entryPoint": 7682,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 7812,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 6777,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6499,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 6819,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 7112,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 6957,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 6355,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6366,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 7867,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_div_t_uint256": {
+ "entryPoint": 7633,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_mul_t_uint256": {
+ "entryPoint": 7520,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_sub_t_uint256": {
+ "entryPoint": 7468,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 6570,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 6750,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 6538,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 6632,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 6929,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 6383,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 7264,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 7421,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x12": {
+ "entryPoint": 7586,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 7217,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 6533,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 6425,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 6588,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_bool": {
+ "entryPoint": 7723,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 6642,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:10776:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5288:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5334:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5336:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5336:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5336:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5309:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5318:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5305:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5305:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5330:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5301:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5301:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5298:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5427:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5442:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5456:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5446:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5471:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5506:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5517:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5502:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5502:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5526:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5481:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5481:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5471:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5554:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5569:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5583:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5573:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5599:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5634:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5645:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5630:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5630:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5654:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5609:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5609:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5599:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5682:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5697:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5711:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5701:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5727:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5762:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5773:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5758:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5758:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5782:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5737:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5737:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "5727:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5242:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5253:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5265:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5273:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "5281:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5939:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5949:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5961:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5972:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5957:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5957:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "5949:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6042:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6053:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6038:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6038:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5985:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5985:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5985:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6110:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6123:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6134:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6119:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6119:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6066:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6066:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6066:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5903:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5915:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5923:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "5934:4:16",
+ "type": ""
+ }
+ ],
+ "src": "5813:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6234:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6280:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "6282:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6282:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6282:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6255:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6264:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6251:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6251:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6276:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "6247:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6247:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6244:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "6373:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6388:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6402:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "6392:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6417:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6452:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "6463:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6448:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6448:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6472:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6427:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6427:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6417:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "6500:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6515:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6529:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "6519:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6545:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6580:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "6591:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6576:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6576:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6600:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6555:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6555:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6545:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6196:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "6207:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6219:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6227:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6151:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6659:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6676:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6679:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6669:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6669:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6669:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6773:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6776:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6766:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6766:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6766:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6797:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6800:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "6790:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6790:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6790:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6631:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6868:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6878:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "6892:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6898:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "6888:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6888:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6878:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6909:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "6939:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6945:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6935:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6935:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "6913:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6986:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7000:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7014:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7022:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "7010:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7010:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7000:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6966:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "6959:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6959:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6956:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7089:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "7103:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7103:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7103:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "7053:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7076:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7084:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "7073:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7073:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "7050:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7050:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7047:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "6852:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "6861:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6817:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7208:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7225:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7248:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "7230:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7230:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7218:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7218:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "7196:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "7203:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7143:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7365:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7375:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7387:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7398:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7383:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7383:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "7375:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "7455:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7468:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7479:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7464:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7464:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "7411:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7411:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7411:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7337:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "7349:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "7360:4:16",
+ "type": ""
+ }
+ ],
+ "src": "7267:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7558:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7568:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "7583:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "7577:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7577:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7568:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7626:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7599:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7599:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7599:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7536:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "7544:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "7552:5:16",
+ "type": ""
+ }
+ ],
+ "src": "7495:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7721:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7767:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "7769:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7769:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7769:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "7742:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7751:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "7738:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7738:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7763:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "7734:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7734:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7731:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "7860:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7875:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7889:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7879:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7904:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7950:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "7961:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7946:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7946:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "7970:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "7914:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7914:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "7904:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7691:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "7702:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "7714:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7644:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8029:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8046:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8049:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8039:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8039:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8039:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8143:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8146:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8136:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8136:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8136:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8167:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8170:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8160:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8160:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8160:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "8001:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8232:149:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8242:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8265:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8247:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8247:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8242:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8276:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8299:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8281:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8281:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8276:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8310:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8322:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8325:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8318:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8318:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "8310:4:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8352:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "8354:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8354:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8354:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "8343:4:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8349:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "8340:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8340:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8337:37:16"
+ }
+ ]
+ },
+ "name": "checked_sub_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "8218:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "8221:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "diff",
+ "nodeType": "YulTypedName",
+ "src": "8227:4:16",
+ "type": ""
+ }
+ ],
+ "src": "8187:194:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8435:362:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8445:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8468:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8450:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8450:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8445:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8479:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8502:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8484:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8484:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8479:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8513:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8536:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8539:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "8532:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8532:9:16"
+ },
+ "variables": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulTypedName",
+ "src": "8517:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8550:41:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulIdentifier",
+ "src": "8579:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8561:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8561:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "8550:7:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8768:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "8770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8701:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8694:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8694:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8724:1:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "8731:7:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8740:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "8727:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8727:15:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "8721:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8721:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "8674:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8674:83:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8654:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8654:113:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8651:139:16"
+ }
+ ]
+ },
+ "name": "checked_mul_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "8418:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "8421:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "product",
+ "nodeType": "YulTypedName",
+ "src": "8427:7:16",
+ "type": ""
+ }
+ ],
+ "src": "8387:410:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8831:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8848:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8851:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8841:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8841:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8841:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8945:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8948:4:16",
+ "type": "",
+ "value": "0x12"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8938:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8938:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8938:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8969:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8972:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8962:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8962:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8962:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x12",
+ "nodeType": "YulFunctionDefinition",
+ "src": "8803:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9031:143:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9041:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9064:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9046:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9046:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9041:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9075:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9098:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9080:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9080:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9075:1:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9122:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x12",
+ "nodeType": "YulIdentifier",
+ "src": "9124:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9124:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9124:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9119:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9112:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9112:9:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9109:35:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9154:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9163:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9166:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "9159:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9159:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nodeType": "YulIdentifier",
+ "src": "9154:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checked_div_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "9020:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "9023:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "r",
+ "nodeType": "YulTypedName",
+ "src": "9029:1:16",
+ "type": ""
+ }
+ ],
+ "src": "8989:185:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9306:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9316:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9328:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9339:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9324:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9324:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9316:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9396:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9409:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9420:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9405:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9405:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9352:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9352:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9352:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "9477:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9490:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9501:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9486:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9433:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9433:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9433:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9270:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "9282:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9290:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9301:4:16",
+ "type": ""
+ }
+ ],
+ "src": "9180:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9558:76:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9612:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9621:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9624:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9614:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9614:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9614:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9581:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9603:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "9588:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9588:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "9578:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9578:32:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9571:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9571:40:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9568:60:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9551:5:16",
+ "type": ""
+ }
+ ],
+ "src": "9518:116:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9700:77:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9710:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9725:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "9719:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9719:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9710:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9765:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "9741:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9741:30:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9741:30:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9678:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "9686:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9694:5:16",
+ "type": ""
+ }
+ ],
+ "src": "9640:137:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9857:271:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9903:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "9905:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9905:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9905:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9878:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9887:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9874:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9874:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9899:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "9870:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9870:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9867:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9996:125:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10011:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10015:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10040:71:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10083:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10094:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10079:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10079:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10103:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "10050:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10050:61:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10040:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9827:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "9838:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9850:6:16",
+ "type": ""
+ }
+ ],
+ "src": "9783:345:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10288:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10298:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10310:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10321:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10306:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10306:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10298:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10378:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10391:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10402:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10387:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10387:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10334:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10334:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10334:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10459:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10472:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10483:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10468:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10415:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10415:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10415:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "10541:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10554:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10565:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10550:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10550:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10497:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10497:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10497:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10244:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "10256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "10264:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10272:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "10283:4:16",
+ "type": ""
+ }
+ ],
+ "src": "10134:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10626:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10636:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10659:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10641:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10636:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10670:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10693:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10675:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10675:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10670:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10704:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10715:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10718:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10711:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10711:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "10704:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10744:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "10746:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10746:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10746:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10736:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "10739:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "10733:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10733:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "10730:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "10613:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "10616:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "10622:3:16",
+ "type": ""
+ }
+ ],
+ "src": "10582:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {
+ "1631": [
+ {
+ "length": 32,
+ "start": 3928
+ }
+ ]
+ },
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ",
+ "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "MINIMUM_LIQUIDITY()": "ba9a7a56",
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "getTokenReserves()": "b9cf5005",
+ "init(address,address)": "f09a4016",
+ "liquidateLpTokens(address)": "74a0f94b",
+ "mint(address)": "6a627842",
+ "name()": "06fdde03",
+ "swap(uint256,uint256,address)": "6d9a640a",
+ "symbol()": "95d89b41",
+ "sync()": "fff6cae9",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "IFactory": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "poolPair",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "getTokenPairs",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "createPool(address,address)": "e3433615",
+ "getTokenPairs(address,address)": "4a70f02e"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "IPool": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "getTokenReserves",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "init",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "liquidateLpTokens",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "swap",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getTokenReserves()": "b9cf5005",
+ "init(address,address)": "f09a4016",
+ "liquidateLpTokens(address)": "74a0f94b",
+ "mint(address)": "6a627842",
+ "swap(uint256,uint256,address)": "6d9a640a"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "IWEDU": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "deposit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "deposit()": "d0e30db0",
+ "transfer(address,uint256)": "a9059cbb",
+ "withdraw(uint256)": "2e1a7d4d"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/libraries/Library.sol": {
+ "DefiLibrary": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ",
+ "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ",
+ "sourceMap": "137:1380:12:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "AppleToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2308": {
+ "entryPoint": null,
+ "id": 2308,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ",
+ "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2321": {
+ "entryPoint": 798,
+ "id": 2321,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ",
+ "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "CherryToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2335": {
+ "entryPoint": null,
+ "id": 2335,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ",
+ "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2348": {
+ "entryPoint": 798,
+ "id": 2348,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ",
+ "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "WrappedEduToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2362": {
+ "entryPoint": null,
+ "id": 2362,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ",
+ "sourceMap": "120:325:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:325:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:325:15:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2375": {
+ "entryPoint": 798,
+ "id": 2375,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ",
+ "sourceMap": "120:325:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;322:87:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;322:87:15:-;383:18;389:3;394:6;383:5;:18::i;:::-;322:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x0e77a55918a3e8b9f3ad3c47b4a00f30e7c01e54b020ab9c6dbdb183ff3327c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea886a6d9652fa622008f2e3bac165b09329d1bdefdc89bce5fcc1373c8343df\",\"dweb:/ipfs/QmQ1kQ6AnmSbzT1vhdSkf2ExvgXKwDPhgzsp1gLWj21mER\"]}},\"version\":1}"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1114/journal.jsonl b/Core uniswap/ignition/deployments/chain-1114/journal.jsonl
new file mode 100644
index 00000000..9ee4b656
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1114/journal.jsonl
@@ -0,0 +1,6 @@
+
+{"chainId":1114,"type":"DEPLOYMENT_INITIALIZE"}
+{"artifactId":"WrappedEduTokenMod#WrappedEduToken","constructorArgs":[],"contractName":"WrappedEduToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"WrappedEduTokenMod#WrappedEduToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}}
+{"futureId":"WrappedEduTokenMod#WrappedEduToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"}
+{"artifactId":"CherryTokenModule#CherryToken","constructorArgs":[],"contractName":"CherryToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"CherryTokenModule#CherryToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}}
+{"futureId":"CherryTokenModule#CherryToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json
new file mode 100644
index 00000000..44fecd38
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json
new file mode 100644
index 00000000..a4d5abd0
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1115/artifacts/CherryTokenModule#CherryToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "CherryToken",
+ "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json b/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json
new file mode 100644
index 00000000..39080d8c
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1115/build-info/6919de14a125c32fee1b7b138baa53da.json
@@ -0,0 +1,79796 @@
+{
+ "id": "6919de14a125c32fee1b7b138baa53da",
+ "_format": "hh-sol-build-info-1",
+ "solcVersion": "0.8.20",
+ "solcLongVersion": "0.8.20+commit.a1b79de6",
+ "input": {
+ "language": "Solidity",
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"
+ },
+ "contracts/core/Factory.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./Pool.sol\";\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\nerror PoolFactory__PoolExists();\r\nerror PoolFactory__NotSetter();\r\n\r\ncontract PoolFactory {\r\n address private feeReceiver;\r\n mapping(address => bool) private feeReceiverSetter;\r\n\r\n mapping(address => mapping(address => address)) private getPairs;\r\n address[] private allPairs;\r\n\r\n event PoolCreated(address tokenA, address tokenB, address poolAddress);\r\n\r\n constructor(address _feeReceiverSetter) {\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolAddress) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (address token0, address token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n if (getPairs[token0][token1] != address(0))\r\n revert PoolFactory__PoolExists();\r\n\r\n bytes memory bytecode = type(Pool).creationCode;\r\n bytes32 salt = keccak256(abi.encodePacked(tokenA, tokenB));\r\n\r\n //TODO: put the salt\r\n\r\n assembly {\r\n poolAddress := create2(0, add(bytecode, 32), mload(bytecode), salt)\r\n }\r\n\r\n Pool(poolAddress).init(tokenA, tokenB);\r\n\r\n getPairs[token0][token1] = poolAddress;\r\n getPairs[token1][token0] = poolAddress;\r\n allPairs.push(poolAddress);\r\n\r\n emit PoolCreated(token0, token1, poolAddress);\r\n }\r\n\r\n function getTokenPairs(\r\n address _tokenA,\r\n address _tokenB\r\n ) external view returns (address) {\r\n return getPairs[_tokenA][_tokenB];\r\n }\r\n\r\n function setFeeReceiver(address _feeReceiver) external {\r\n checkIfSetter();\r\n\r\n feeReceiver = _feeReceiver;\r\n }\r\n\r\n function addToFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = true;\r\n }\r\n\r\n function removeFromFeeReceiverSetter(address _feeReceiverSetter) external {\r\n checkIfSetter();\r\n\r\n feeReceiverSetter[_feeReceiverSetter] = false;\r\n }\r\n\r\n function checkIfSetter() internal view {\r\n bool ifSetter = feeReceiverSetter[msg.sender];\r\n if (!ifSetter) revert PoolFactory__NotSetter();\r\n }\r\n}"
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IFactory {\r\n function getTokenPairs(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address);\r\n\r\n function createPool(\r\n address tokenA,\r\n address tokenB\r\n ) external returns (address poolPair);\r\n}"
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IPool {\r\n // event PairCreated(address indexed token0, address indexed token1, address pair, uint);\r\n\r\n function init(address _tokenA, address _tokenB) external;\r\n\r\n function mint(address _to) external returns (uint256);\r\n\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB);\r\n\r\n function getTokenReserves() external view returns (uint256, uint256);\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external;\r\n}"
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\ninterface IWEDU {\r\n function deposit() external payable;\r\n\r\n function transfer(address to, uint value) external returns (bool);\r\n\r\n function withdraw(uint) external;\r\n}"
+ },
+ "contracts/core/libraries/Library.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nerror PoolFactory__IdenticalAddress();\r\nerror PoolFactory__ZeroAddress();\r\n\r\nlibrary DefiLibrary {\r\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\r\n function sortTokens(\r\n address tokenA,\r\n address tokenB\r\n ) internal pure returns (address token0, address token1) {\r\n if (tokenA == tokenB) revert PoolFactory__IdenticalAddress();\r\n (token0, token1) = tokenA < tokenB\r\n ? (tokenA, tokenB)\r\n : (tokenB, tokenA);\r\n // since tokenA is the smaller address we can check if its == address(0);\r\n if (token0 == address(0)) revert PoolFactory__ZeroAddress();\r\n }\r\n\r\n // performs chained getAmountOut calculations on any number of pairs\r\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\r\n function getAmountOut(\r\n uint amountIn,\r\n uint reserveIn,\r\n uint reserveOut\r\n ) internal pure returns (uint amountOut) {\r\n require(amountIn > 0, \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\");\r\n require(\r\n reserveIn > 0 && reserveOut > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n uint amountInWithFee = amountIn * 997;\r\n uint numerator = amountInWithFee * reserveOut;\r\n uint denominator = (reserveIn * 1000) + (amountInWithFee);\r\n amountOut = numerator / denominator;\r\n }\r\n}"
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// import \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./interfaces/IFactory.sol\";\r\nimport \"./interfaces/IPool.sol\";\r\nimport \"./interfaces/IWedu.sol\";\r\nimport \"./libraries/Library.sol\";\r\n\r\nerror LiquidityProvider__InsufficientAmount();\r\nerror LiquidityProvider__InsufficientOutputAmount();\r\nerror LiquidityProvider__EDUTransferFailed();\r\n\r\ncontract LiquidityProvider {\r\n address private immutable factoryAddress;\r\n address private immutable WEDU;\r\n\r\n constructor(address _factoryAddress, address _WEDU) {\r\n factoryAddress = _factoryAddress;\r\n WEDU = _WEDU;\r\n }\r\n\r\n function _addLiquidity(\r\n address _tokenA,\r\n address _tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) internal returns (uint256 amountA, uint256 amountB) {\r\n address pair = IFactory(factoryAddress).getTokenPairs(_tokenA, _tokenB);\r\n if (pair == address(0))\r\n pair = IFactory(factoryAddress).createPool(_tokenA, _tokenB);\r\n\r\n (uint256 reserveA, uint256 reserveB) = IPool(pair).getTokenReserves();\r\n\r\n if (reserveA == 0 && reserveB == 0) {\r\n (amountA, amountB) = (amountOfTokenADesired, amountOfTokenBDesired);\r\n } else {\r\n uint256 optimalAmountOfTokenB = quote(\r\n amountOfTokenADesired,\r\n reserveA,\r\n reserveB\r\n );\r\n if (optimalAmountOfTokenB <= amountOfTokenBDesired) {\r\n if (optimalAmountOfTokenB < minTokenB)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (\r\n amountOfTokenADesired,\r\n optimalAmountOfTokenB\r\n );\r\n } else {\r\n uint256 amountAOptimal = quote(\r\n amountOfTokenBDesired,\r\n reserveB,\r\n reserveA\r\n );\r\n assert(amountAOptimal <= amountOfTokenADesired);\r\n if (amountAOptimal < minTokenA)\r\n revert LiquidityProvider__InsufficientAmount();\r\n (amountA, amountB) = (amountAOptimal, amountOfTokenBDesired);\r\n }\r\n }\r\n }\r\n\r\n function addLiquidity(\r\n address tokenA,\r\n address tokenB,\r\n uint256 amountOfTokenADesired,\r\n uint256 amountOfTokenBDesired,\r\n uint256 minTokenA,\r\n uint256 minTokenB\r\n ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity) {\r\n (amountA, amountB) = _addLiquidity(\r\n tokenA,\r\n tokenB,\r\n amountOfTokenADesired,\r\n amountOfTokenBDesired,\r\n minTokenA,\r\n minTokenB\r\n );\r\n address pair = IFactory(factoryAddress).getTokenPairs(tokenA, tokenB);\r\n IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n IERC20(tokenB).transferFrom(msg.sender, pair, amountB);\r\n liquidity = IPool(pair).mint(msg.sender);\r\n }\r\n\r\n // function addLiquidityEdu(\r\n // address tokenA\r\n // ) external returns (uint256 amountA, uint256 amountEDU, uint256 liquidity) {\r\n // (amountA, amountEDU) = _addLiquidity();\r\n // address pair = IFactory(factoryAddress).getTokenPairs(tokenA, WEDU);\r\n // IERC20(tokenA).transferFrom(msg.sender, pair, amountA);\r\n // IWEDU(WEDU).deposit{value: amountEDU}();\r\n // assert(IWEDU(WEDU).transfer(pair, amountEDU));\r\n // liquidity = IPool(pair).mint(msg.sender);\r\n\r\n // if (msg.value > amountEDU)\r\n // (bool success, ) = msg.sender.call{value: value}(\"\");\r\n // if (!success) revert LiquidityProvider__EDUTransferFailed();\r\n // }\r\n\r\n // TODO: Remove liquidity & liquidityEdu\r\n\r\n // Swapppp\r\n\r\n function _swap(\r\n uint256[] memory amounts,\r\n address[] memory path,\r\n address _pair,\r\n address _to\r\n ) internal {\r\n for (uint i; i < path.length - 1; i++) {\r\n (address input, address output) = (path[i], path[i + 1]);\r\n (address token0, ) = DefiLibrary.sortTokens(input, output);\r\n uint256 amountOut = amounts[i + 1];\r\n (uint256 amount0Out, uint256 amount1Out) = input == token0\r\n ? (amountOut, uint256(0))\r\n : (uint256(0), amountOut);\r\n /**TODO: In case of multiple hops */\r\n IPool(_pair).swap(amountOut, amounts[i], _to);\r\n }\r\n }\r\n\r\n function swapExactTokensForTokens(\r\n uint amountIn,\r\n uint amountOutMin,\r\n address[] calldata path\r\n )\r\n external\r\n returns (\r\n /**address to*/\r\n uint[] memory amounts\r\n )\r\n {\r\n address pair = IFactory(factoryAddress).getTokenPairs(path[0], path[1]);\r\n\r\n amounts = getAmountsOut(pair, amountIn, path);\r\n if (amounts[amounts.length - 1] < amountOutMin)\r\n revert LiquidityProvider__InsufficientOutputAmount();\r\n\r\n IERC20(path[0]).transferFrom(msg.sender, pair, amounts[0]);\r\n _swap(amounts, path, pair, msg.sender);\r\n }\r\n\r\n function quote(\r\n uint amountA,\r\n uint reserveA,\r\n uint reserveB\r\n ) internal pure returns (uint amountB) {\r\n require(amountA > 0, \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\");\r\n require(\r\n reserveA > 0 && reserveB > 0,\r\n \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\"\r\n );\r\n amountB = (amountA * reserveB) / reserveA;\r\n }\r\n\r\n // function getAmountsOut() public view returns (uint256) {}\r\n\r\n function getAmountsOut(\r\n address pair,\r\n uint amountIn,\r\n address[] memory path\r\n ) public view returns (uint[] memory amounts) {\r\n require(path.length >= 2, \"UniswapV2Library: INVALID_PATH\");\r\n amounts = new uint[](path.length);\r\n amounts[0] = amountIn;\r\n for (uint i; i < path.length - 1; i++) {\r\n (uint reserveIn, uint reserveOut) = IPool(pair).getTokenReserves();\r\n amounts[i + 1] = DefiLibrary.getAmountOut(\r\n amounts[i],\r\n reserveIn,\r\n reserveOut\r\n );\r\n }\r\n }\r\n}"
+ },
+ "contracts/core/Math.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\n// a library for performing various math operations\r\n\r\nlibrary Math {\r\n function min(uint x, uint y) internal pure returns (uint z) {\r\n z = x < y ? x : y;\r\n }\r\n\r\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\r\n function sqrt(uint y) internal pure returns (uint z) {\r\n if (y > 3) {\r\n z = y;\r\n uint x = y / 2 + 1;\r\n while (x < z) {\r\n z = x;\r\n x = (y / x + x) / 2;\r\n }\r\n } else if (y != 0) {\r\n z = 1;\r\n }\r\n }\r\n}"
+ },
+ "contracts/core/Pool.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.9;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\r\nimport \"./Math.sol\";\r\n\r\nerror PoolFactory__NotOwner();\r\nerror PoolFactory__InsufficientLiquidity();\r\nerror PoolFactory__InsufficientFunds();\r\n\r\ncontract Pool is ERC20 {\r\n using Math for uint256;\r\n\r\n address private immutable factory;\r\n address private tokenA;\r\n address private tokenB;\r\n\r\n uint256 public constant MINIMUM_LIQUIDITY = 10 ** 3;\r\n\r\n uint256 private reserveA;\r\n uint256 private reserveB;\r\n\r\n uint256 private totalLpShares;\r\n\r\n constructor() ERC20(\"LiquidityTokens\", \"LP\") {\r\n factory = msg.sender;\r\n }\r\n\r\n function init(address _tokenA, address _tokenB) external {\r\n if (factory != msg.sender) revert PoolFactory__NotOwner();\r\n\r\n tokenA = _tokenA;\r\n tokenB = _tokenB;\r\n }\r\n\r\n function _update(uint256 _balanceA, uint256 _balanceB) private {\r\n reserveA = _balanceA;\r\n reserveB = _balanceB;\r\n }\r\n\r\n function mint(address _to) external returns (uint256 liquidity) {\r\n (uint256 _reserveA, uint256 _reserveB) = getTokenReserves();\r\n uint256 _balanceA = IERC20(tokenA).balanceOf(address(this));\r\n uint256 _balanceB = IERC20(tokenB).balanceOf(address(this));\r\n uint256 depositOfTokenA = _balanceA - _reserveA;\r\n uint256 depositOfTokenB = _balanceB - _reserveB;\r\n\r\n uint256 _totalSupply = totalSupply();\r\n if (_totalSupply == 0) {\r\n liquidity =\r\n Math.sqrt(depositOfTokenA * depositOfTokenB) -\r\n (MINIMUM_LIQUIDITY);\r\n _mint(address(1), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens to avoid the pool being drained\r\n } else {\r\n liquidity = Math.min(\r\n (depositOfTokenA * _totalSupply) / _reserveA,\r\n (depositOfTokenB * _totalSupply) / _reserveB\r\n );\r\n }\r\n if (liquidity <= 0) revert PoolFactory__InsufficientLiquidity();\r\n _mint(_to, liquidity);\r\n _update(_balanceA, _balanceB);\r\n\r\n // emit Mint(msg.sender, depositOfTokenA, depositOfTokenB);\r\n }\r\n\r\n // BURN\r\n function liquidateLpTokens(\r\n address to\r\n ) external returns (uint256 amountA, uint256 amountB) {\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\r\n address _tokenA = tokenA; // gas savings\r\n address _tokenB = tokenB; // gas savings\r\n uint balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n uint balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n uint liquidity = balanceOf(to);\r\n\r\n uint256 _totalSupply = totalSupply(); // gas savings, must be defined here since totalSupply can update in _mintFee\r\n amountA = (liquidity * balanceA) / _totalSupply; // using balances ensures pro-rata distribution\r\n amountB = (liquidity * balanceB) / _totalSupply; // using balances ensures pro-rata distribution\r\n if (amountA <= 0 && amountB <= 0)\r\n revert PoolFactory__InsufficientLiquidity();\r\n _burn(address(this), liquidity);\r\n IERC20(_tokenA).transfer(to, amountA);\r\n IERC20(_tokenB).transfer(to, amountB);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n\r\n _update(balanceA, balanceB);\r\n\r\n // emit Burn(msg.sender, amount0, amountB, to);\r\n }\r\n\r\n function swap(\r\n uint256 amount0Out,\r\n uint256 amount1Out,\r\n address to /**bytes calldata data */\r\n ) external {\r\n if (amount0Out <= 0 && amount1Out <= 0)\r\n revert PoolFactory__InsufficientFunds();\r\n (uint256 _reserve0, uint256 _reserve1) = getTokenReserves();\r\n if (amount0Out > _reserve0 || amount1Out > _reserve1)\r\n revert PoolFactory__InsufficientLiquidity();\r\n uint256 balanceA;\r\n uint256 balanceB;\r\n {\r\n address _tokenA = tokenA;\r\n address _tokenB = tokenB;\r\n if (amount0Out > 0) IERC20(_tokenA).transfer(to, amount0Out);\r\n if (amount1Out > 0) IERC20(_tokenB).transfer(to, amount1Out);\r\n balanceA = IERC20(_tokenA).balanceOf(address(this));\r\n balanceB = IERC20(_tokenB).balanceOf(address(this));\r\n }\r\n\r\n _update(balanceA, balanceB);\r\n }\r\n\r\n function getTokenReserves() public view returns (uint256, uint256) {\r\n return (reserveA, reserveB);\r\n }\r\n\r\n // force reserves to match balances\r\n function sync() external {\r\n _update(\r\n IERC20(tokenA).balanceOf(address(this)),\r\n IERC20(tokenB).balanceOf(address(this))\r\n );\r\n }\r\n}"
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract WrappedEduToken is ERC20 {\r\n constructor() ERC20(\"WrappedEdu\", \"WEDU\") {}\r\n\r\n // function deposit(uint256 amount) public payable {\r\n // _mint(msg.sender, amount);\r\n // }\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ }
+ },
+ "settings": {
+ "evmVersion": "paris",
+ "optimizer": {
+ "enabled": false,
+ "runs": 200
+ },
+ "outputSelection": {
+ "*": {
+ "*": [
+ "abi",
+ "evm.bytecode",
+ "evm.deployedBytecode",
+ "evm.methodIdentifiers",
+ "metadata"
+ ],
+ "": [
+ "ast"
+ ]
+ }
+ }
+ }
+ },
+ "output": {
+ "errors": [
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:10:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 2397,
+ "file": "contracts/core/Pool.sol",
+ "start": 2380
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/Pool.sol:72:29:\n |\n72 | (uint256 _reserve0, uint256 _reserve1) = getTokenReserves(); // gas savings\n | ^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 2416,
+ "file": "contracts/core/Pool.sol",
+ "start": 2399
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:14:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 4393,
+ "file": "contracts/core/LiquidityProvider.sol",
+ "start": 4375
+ },
+ "type": "Warning"
+ },
+ {
+ "component": "general",
+ "errorCode": "2072",
+ "formattedMessage": "Warning: Unused local variable.\n --> contracts/core/LiquidityProvider.sol:118:34:\n |\n118 | (uint256 amount0Out, uint256 amount1Out) = input == token0\n | ^^^^^^^^^^^^^^^^^^\n\n",
+ "message": "Unused local variable.",
+ "severity": "warning",
+ "sourceLocation": {
+ "end": 4413,
+ "file": "contracts/core/LiquidityProvider.sol",
+ "start": 4395
+ },
+ "type": "Warning"
+ }
+ ],
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "exportedSymbols": {
+ "IERC1155Errors": [
+ 136
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC721Errors": [
+ 89
+ ]
+ },
+ "id": 137,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "112:24:0"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 2,
+ "nodeType": "StructuredDocumentation",
+ "src": "138:141:0",
+ "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 41,
+ "linearizedBaseContracts": [
+ 41
+ ],
+ "name": "IERC20Errors",
+ "nameLocation": "290:12:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 3,
+ "nodeType": "StructuredDocumentation",
+ "src": "309:309:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "e450d38c",
+ "id": 11,
+ "name": "ERC20InsufficientBalance",
+ "nameLocation": "629:24:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "662:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "654:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "654:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "678:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "670:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "670:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "695:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "687:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "687:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "653:49:0"
+ },
+ "src": "623:80:0"
+ },
+ {
+ "documentation": {
+ "id": 12,
+ "nodeType": "StructuredDocumentation",
+ "src": "709:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "96c6fd1e",
+ "id": 16,
+ "name": "ERC20InvalidSender",
+ "nameLocation": "872:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 15,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "899:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 16,
+ "src": "891:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 13,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "891:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "890:16:0"
+ },
+ "src": "866:41:0"
+ },
+ {
+ "documentation": {
+ "id": 17,
+ "nodeType": "StructuredDocumentation",
+ "src": "913:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "ec442f05",
+ "id": 21,
+ "name": "ERC20InvalidReceiver",
+ "nameLocation": "1083:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 20,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 19,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "1112:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 21,
+ "src": "1104:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 18,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1104:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1103:18:0"
+ },
+ "src": "1077:45:0"
+ },
+ {
+ "documentation": {
+ "id": 22,
+ "nodeType": "StructuredDocumentation",
+ "src": "1128:345:0",
+ "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "fb8f41b2",
+ "id": 30,
+ "name": "ERC20InsufficientAllowance",
+ "nameLocation": "1484:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 29,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 24,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1519:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1511:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 23,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1511:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 26,
+ "mutability": "mutable",
+ "name": "allowance",
+ "nameLocation": "1536:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1528:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 25,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1528:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 28,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "1555:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1547:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 27,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1547:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1510:52:0"
+ },
+ "src": "1478:85:0"
+ },
+ {
+ "documentation": {
+ "id": 31,
+ "nodeType": "StructuredDocumentation",
+ "src": "1569:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "e602df05",
+ "id": 35,
+ "name": "ERC20InvalidApprover",
+ "nameLocation": "1754:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 34,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 33,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "1783:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 35,
+ "src": "1775:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 32,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1775:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1774:18:0"
+ },
+ "src": "1748:45:0"
+ },
+ {
+ "documentation": {
+ "id": 36,
+ "nodeType": "StructuredDocumentation",
+ "src": "1799:195:0",
+ "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "94280d62",
+ "id": 40,
+ "name": "ERC20InvalidSpender",
+ "nameLocation": "2005:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 39,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 38,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2033:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 40,
+ "src": "2025:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 37,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2025:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2024:17:0"
+ },
+ "src": "1999:43:0"
+ }
+ ],
+ "scope": 137,
+ "src": "280:1764:0",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC721Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 42,
+ "nodeType": "StructuredDocumentation",
+ "src": "2046:143:0",
+ "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 89,
+ "linearizedBaseContracts": [
+ 89
+ ],
+ "name": "IERC721Errors",
+ "nameLocation": "2200:13:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 43,
+ "nodeType": "StructuredDocumentation",
+ "src": "2220:219:0",
+ "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "89c62b64",
+ "id": 47,
+ "name": "ERC721InvalidOwner",
+ "nameLocation": "2450:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 46,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 45,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "2477:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 47,
+ "src": "2469:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 44,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2469:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2468:15:0"
+ },
+ "src": "2444:40:0"
+ },
+ {
+ "documentation": {
+ "id": 48,
+ "nodeType": "StructuredDocumentation",
+ "src": "2490:132:0",
+ "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "7e273289",
+ "id": 52,
+ "name": "ERC721NonexistentToken",
+ "nameLocation": "2633:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 51,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 50,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2664:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 52,
+ "src": "2656:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 49,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2656:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2655:17:0"
+ },
+ "src": "2627:46:0"
+ },
+ {
+ "documentation": {
+ "id": 53,
+ "nodeType": "StructuredDocumentation",
+ "src": "2679:289:0",
+ "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "64283d7b",
+ "id": 61,
+ "name": "ERC721IncorrectOwner",
+ "nameLocation": "2979:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 60,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 55,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3008:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3000:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 54,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3000:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 57,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3024:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3016:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 56,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3016:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 59,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3041:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3033:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 58,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3033:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2999:48:0"
+ },
+ "src": "2973:75:0"
+ },
+ {
+ "documentation": {
+ "id": 62,
+ "nodeType": "StructuredDocumentation",
+ "src": "3054:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "73c6ac6e",
+ "id": 66,
+ "name": "ERC721InvalidSender",
+ "nameLocation": "3217:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 65,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 64,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3245:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 66,
+ "src": "3237:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 63,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3237:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3236:16:0"
+ },
+ "src": "3211:42:0"
+ },
+ {
+ "documentation": {
+ "id": 67,
+ "nodeType": "StructuredDocumentation",
+ "src": "3259:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "64a0ae92",
+ "id": 71,
+ "name": "ERC721InvalidReceiver",
+ "nameLocation": "3429:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 70,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 69,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "3459:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 71,
+ "src": "3451:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 68,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3451:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3450:18:0"
+ },
+ "src": "3423:46:0"
+ },
+ {
+ "documentation": {
+ "id": 72,
+ "nodeType": "StructuredDocumentation",
+ "src": "3475:247:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "177e802f",
+ "id": 78,
+ "name": "ERC721InsufficientApproval",
+ "nameLocation": "3733:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 77,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 74,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "3768:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3760:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 73,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3760:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 76,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3786:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3778:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 75,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3778:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3759:35:0"
+ },
+ "src": "3727:68:0"
+ },
+ {
+ "documentation": {
+ "id": 79,
+ "nodeType": "StructuredDocumentation",
+ "src": "3801:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "a9fbf51f",
+ "id": 83,
+ "name": "ERC721InvalidApprover",
+ "nameLocation": "3986:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 82,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 81,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "4016:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 83,
+ "src": "4008:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 80,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4008:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4007:18:0"
+ },
+ "src": "3980:46:0"
+ },
+ {
+ "documentation": {
+ "id": 84,
+ "nodeType": "StructuredDocumentation",
+ "src": "4032:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "5b08ba18",
+ "id": 88,
+ "name": "ERC721InvalidOperator",
+ "nameLocation": "4240:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 87,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 86,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "4270:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 88,
+ "src": "4262:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 85,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4262:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4261:18:0"
+ },
+ "src": "4234:46:0"
+ }
+ ],
+ "scope": 137,
+ "src": "2190:2092:0",
+ "usedErrors": [
+ 47,
+ 52,
+ 61,
+ 66,
+ 71,
+ 78,
+ 83,
+ 88
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC1155Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 90,
+ "nodeType": "StructuredDocumentation",
+ "src": "4284:145:0",
+ "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 136,
+ "linearizedBaseContracts": [
+ 136
+ ],
+ "name": "IERC1155Errors",
+ "nameLocation": "4440:14:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 91,
+ "nodeType": "StructuredDocumentation",
+ "src": "4461:361:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "03dee4c5",
+ "id": 101,
+ "name": "ERC1155InsufficientBalance",
+ "nameLocation": "4833:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 100,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 93,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "4868:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4860:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 92,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4860:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 95,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "4884:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4876:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 94,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4876:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 97,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "4901:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4893:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 96,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4893:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 99,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4917:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4909:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 98,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4909:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4859:66:0"
+ },
+ "src": "4827:99:0"
+ },
+ {
+ "documentation": {
+ "id": 102,
+ "nodeType": "StructuredDocumentation",
+ "src": "4932:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "01a83514",
+ "id": 106,
+ "name": "ERC1155InvalidSender",
+ "nameLocation": "5095:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 105,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 104,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "5124:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "5116:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 103,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5116:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5115:16:0"
+ },
+ "src": "5089:43:0"
+ },
+ {
+ "documentation": {
+ "id": 107,
+ "nodeType": "StructuredDocumentation",
+ "src": "5138:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "57f447ce",
+ "id": 111,
+ "name": "ERC1155InvalidReceiver",
+ "nameLocation": "5308:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 109,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "5339:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 111,
+ "src": "5331:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 108,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5331:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5330:18:0"
+ },
+ "src": "5302:47:0"
+ },
+ {
+ "documentation": {
+ "id": 112,
+ "nodeType": "StructuredDocumentation",
+ "src": "5355:256:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "e237d922",
+ "id": 118,
+ "name": "ERC1155MissingApprovalForAll",
+ "nameLocation": "5622:28:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 117,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 114,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "5659:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5651:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 113,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5651:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 116,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "5677:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5669:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5669:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5650:33:0"
+ },
+ "src": "5616:68:0"
+ },
+ {
+ "documentation": {
+ "id": 119,
+ "nodeType": "StructuredDocumentation",
+ "src": "5690:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "3e31884e",
+ "id": 123,
+ "name": "ERC1155InvalidApprover",
+ "nameLocation": "5875:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 121,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "5906:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 123,
+ "src": "5898:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 120,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5898:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5897:18:0"
+ },
+ "src": "5869:47:0"
+ },
+ {
+ "documentation": {
+ "id": 124,
+ "nodeType": "StructuredDocumentation",
+ "src": "5922:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "ced3e100",
+ "id": 128,
+ "name": "ERC1155InvalidOperator",
+ "nameLocation": "6130:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 127,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 126,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "6161:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 128,
+ "src": "6153:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 125,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6153:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6152:18:0"
+ },
+ "src": "6124:47:0"
+ },
+ {
+ "documentation": {
+ "id": 129,
+ "nodeType": "StructuredDocumentation",
+ "src": "6177:280:0",
+ "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"
+ },
+ "errorSelector": "5b059991",
+ "id": 135,
+ "name": "ERC1155InvalidArrayLength",
+ "nameLocation": "6468:25:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 134,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 131,
+ "mutability": "mutable",
+ "name": "idsLength",
+ "nameLocation": "6502:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6494:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 130,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6494:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 133,
+ "mutability": "mutable",
+ "name": "valuesLength",
+ "nameLocation": "6521:12:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6513:20:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6513:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6493:41:0"
+ },
+ "src": "6462:73:0"
+ }
+ ],
+ "scope": 137,
+ "src": "4430:2107:0",
+ "usedErrors": [
+ 101,
+ 106,
+ 111,
+ 118,
+ 123,
+ 128,
+ 135
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "112:6426:0"
+ },
+ "id": 0
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 652,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 138,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "105:24:1"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "./IERC20.sol",
+ "id": 140,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 730,
+ "src": "131:36:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 139,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "139:6:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "file": "./extensions/IERC20Metadata.sol",
+ "id": 142,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 756,
+ "src": "168:63:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 141,
+ "name": "IERC20Metadata",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 755,
+ "src": "176:14:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "file": "../../utils/Context.sol",
+ "id": 144,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 786,
+ "src": "232:48:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 143,
+ "name": "Context",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 785,
+ "src": "240:7:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "file": "../../interfaces/draft-IERC6093.sol",
+ "id": 146,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 137,
+ "src": "281:65:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 145,
+ "name": "IERC20Errors",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 41,
+ "src": "289:12:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 148,
+ "name": "Context",
+ "nameLocations": [
+ "1133:7:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 785,
+ "src": "1133:7:1"
+ },
+ "id": 149,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1133:7:1"
+ },
+ {
+ "baseName": {
+ "id": 150,
+ "name": "IERC20",
+ "nameLocations": [
+ "1142:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "1142:6:1"
+ },
+ "id": 151,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1142:6:1"
+ },
+ {
+ "baseName": {
+ "id": 152,
+ "name": "IERC20Metadata",
+ "nameLocations": [
+ "1150:14:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 755,
+ "src": "1150:14:1"
+ },
+ "id": 153,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1150:14:1"
+ },
+ {
+ "baseName": {
+ "id": 154,
+ "name": "IERC20Errors",
+ "nameLocations": [
+ "1166:12:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 41,
+ "src": "1166:12:1"
+ },
+ "id": 155,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1166:12:1"
+ }
+ ],
+ "canonicalName": "ERC20",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 147,
+ "nodeType": "StructuredDocumentation",
+ "src": "348:757:1",
+ "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."
+ },
+ "fullyImplemented": true,
+ "id": 651,
+ "linearizedBaseContracts": [
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "ERC20",
+ "nameLocation": "1124:5:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 159,
+ "mutability": "mutable",
+ "name": "_balances",
+ "nameLocation": "1229:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1185:53:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "typeName": {
+ "id": 158,
+ "keyName": "account",
+ "keyNameLocation": "1201:7:1",
+ "keyType": {
+ "id": 156,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1193:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1185:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1212:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 165,
+ "mutability": "mutable",
+ "name": "_allowances",
+ "nameLocation": "1317:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1245:83:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "typeName": {
+ "id": 164,
+ "keyName": "account",
+ "keyNameLocation": "1261:7:1",
+ "keyType": {
+ "id": 160,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1253:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1245:63:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 163,
+ "keyName": "spender",
+ "keyNameLocation": "1288:7:1",
+ "keyType": {
+ "id": 161,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1280:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1272:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 162,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1299:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 167,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "1351:12:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1335:28:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 166,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1335:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 169,
+ "mutability": "mutable",
+ "name": "_name",
+ "nameLocation": "1385:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1370:20:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 168,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1370:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 171,
+ "mutability": "mutable",
+ "name": "_symbol",
+ "nameLocation": "1411:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1396:22:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 170,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1396:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 187,
+ "nodeType": "Block",
+ "src": "1657:57:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 179,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1667:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 180,
+ "name": "name_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 174,
+ "src": "1675:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1667:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 182,
+ "nodeType": "ExpressionStatement",
+ "src": "1667:13:1"
+ },
+ {
+ "expression": {
+ "id": 185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 183,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "1690:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 184,
+ "name": "symbol_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 176,
+ "src": "1700:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1690:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 186,
+ "nodeType": "ExpressionStatement",
+ "src": "1690:17:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 172,
+ "nodeType": "StructuredDocumentation",
+ "src": "1425:171:1",
+ "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."
+ },
+ "id": 188,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 177,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 174,
+ "mutability": "mutable",
+ "name": "name_",
+ "nameLocation": "1627:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1613:19:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 173,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1613:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 176,
+ "mutability": "mutable",
+ "name": "symbol_",
+ "nameLocation": "1648:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1634:21:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 175,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1634:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1612:44:1"
+ },
+ "returnParameters": {
+ "id": 178,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1657:0:1"
+ },
+ "scope": 651,
+ "src": "1601:113:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "baseFunctions": [
+ 742
+ ],
+ "body": {
+ "id": 196,
+ "nodeType": "Block",
+ "src": "1839:29:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 194,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1856:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 193,
+ "id": 195,
+ "nodeType": "Return",
+ "src": "1849:12:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 189,
+ "nodeType": "StructuredDocumentation",
+ "src": "1720:54:1",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 197,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "1788:4:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 190,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1792:2:1"
+ },
+ "returnParameters": {
+ "id": 193,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 192,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 197,
+ "src": "1824:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 191,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1824:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1823:15:1"
+ },
+ "scope": 651,
+ "src": "1779:89:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 748
+ ],
+ "body": {
+ "id": 205,
+ "nodeType": "Block",
+ "src": "2043:31:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 203,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "2060:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 202,
+ "id": 204,
+ "nodeType": "Return",
+ "src": "2053:14:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 198,
+ "nodeType": "StructuredDocumentation",
+ "src": "1874:102:1",
+ "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
+ },
+ "functionSelector": "95d89b41",
+ "id": 206,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "1990:6:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 199,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1996:2:1"
+ },
+ "returnParameters": {
+ "id": 202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 201,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 206,
+ "src": "2028:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 200,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2028:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2027:15:1"
+ },
+ "scope": 651,
+ "src": "1981:93:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 754
+ ],
+ "body": {
+ "id": 214,
+ "nodeType": "Block",
+ "src": "2763:26:1",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "3138",
+ "id": 212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2780:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18_by_1",
+ "typeString": "int_const 18"
+ },
+ "value": "18"
+ },
+ "functionReturnParameters": 211,
+ "id": 213,
+ "nodeType": "Return",
+ "src": "2773:9:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 207,
+ "nodeType": "StructuredDocumentation",
+ "src": "2080:622:1",
+ "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
+ },
+ "functionSelector": "313ce567",
+ "id": 215,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "2716:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 208,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2724:2:1"
+ },
+ "returnParameters": {
+ "id": 211,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 210,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 215,
+ "src": "2756:5:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 209,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2756:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2755:7:1"
+ },
+ "scope": 651,
+ "src": "2707:82:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 678
+ ],
+ "body": {
+ "id": 223,
+ "nodeType": "Block",
+ "src": "2910:36:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 221,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "2927:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 220,
+ "id": 222,
+ "nodeType": "Return",
+ "src": "2920:19:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 216,
+ "nodeType": "StructuredDocumentation",
+ "src": "2795:49:1",
+ "text": " @dev See {IERC20-totalSupply}."
+ },
+ "functionSelector": "18160ddd",
+ "id": 224,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "2858:11:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 217,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2869:2:1"
+ },
+ "returnParameters": {
+ "id": 220,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 219,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 224,
+ "src": "2901:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2901:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2900:9:1"
+ },
+ "scope": 651,
+ "src": "2849:97:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 686
+ ],
+ "body": {
+ "id": 236,
+ "nodeType": "Block",
+ "src": "3078:42:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 232,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "3095:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 234,
+ "indexExpression": {
+ "id": 233,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 227,
+ "src": "3105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3095:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 231,
+ "id": 235,
+ "nodeType": "Return",
+ "src": "3088:25:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 225,
+ "nodeType": "StructuredDocumentation",
+ "src": "2952:47:1",
+ "text": " @dev See {IERC20-balanceOf}."
+ },
+ "functionSelector": "70a08231",
+ "id": 237,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "3013:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 228,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 227,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "3031:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3023:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 226,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3023:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3022:17:1"
+ },
+ "returnParameters": {
+ "id": 231,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 230,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3069:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 229,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3069:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3068:9:1"
+ },
+ "scope": 651,
+ "src": "3004:116:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 696
+ ],
+ "body": {
+ "id": 260,
+ "nodeType": "Block",
+ "src": "3390:103:1",
+ "statements": [
+ {
+ "assignments": [
+ 248
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 248,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3408:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 260,
+ "src": "3400:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 247,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3400:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 251,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 249,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "3416:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3416:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3400:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 253,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 248,
+ "src": "3448:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 254,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 240,
+ "src": "3455:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 255,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 242,
+ "src": "3459:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 252,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "3438:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3438:27:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 257,
+ "nodeType": "ExpressionStatement",
+ "src": "3438:27:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3482:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 246,
+ "id": 259,
+ "nodeType": "Return",
+ "src": "3475:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 238,
+ "nodeType": "StructuredDocumentation",
+ "src": "3126:184:1",
+ "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 261,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "3324:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 243,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 240,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3341:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3333:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 239,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3333:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 242,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3353:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3345:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 241,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3345:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3332:27:1"
+ },
+ "returnParameters": {
+ "id": 246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 245,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3384:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 244,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3384:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3383:6:1"
+ },
+ "scope": 651,
+ "src": "3315:178:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 706
+ ],
+ "body": {
+ "id": 277,
+ "nodeType": "Block",
+ "src": "3640:51:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 271,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "3657:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 273,
+ "indexExpression": {
+ "id": 272,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 264,
+ "src": "3669:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 275,
+ "indexExpression": {
+ "id": 274,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 266,
+ "src": "3676:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 270,
+ "id": 276,
+ "nodeType": "Return",
+ "src": "3650:34:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 262,
+ "nodeType": "StructuredDocumentation",
+ "src": "3499:47:1",
+ "text": " @dev See {IERC20-allowance}."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 278,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "3560:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 267,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 264,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3578:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3570:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 263,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3570:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 266,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "3593:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3585:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 265,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3585:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3569:32:1"
+ },
+ "returnParameters": {
+ "id": 270,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 269,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3631:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 268,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3630:9:1"
+ },
+ "scope": 651,
+ "src": "3551:140:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 716
+ ],
+ "body": {
+ "id": 301,
+ "nodeType": "Block",
+ "src": "4077:107:1",
+ "statements": [
+ {
+ "assignments": [
+ 289
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 289,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "4095:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 301,
+ "src": "4087:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 288,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4087:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 292,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 290,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4103:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4103:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4087:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 294,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "4134:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 295,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 281,
+ "src": "4141:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 296,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 283,
+ "src": "4150:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 293,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 542,
+ "src": "4125:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4125:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 298,
+ "nodeType": "ExpressionStatement",
+ "src": "4125:31:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4173:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 287,
+ "id": 300,
+ "nodeType": "Return",
+ "src": "4166:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 279,
+ "nodeType": "StructuredDocumentation",
+ "src": "3697:296:1",
+ "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 302,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "4007:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 284,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 281,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4023:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4015:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 280,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4015:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 283,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4040:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4032:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4032:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4014:32:1"
+ },
+ "returnParameters": {
+ "id": 287,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 286,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4071:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 285,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4071:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4070:6:1"
+ },
+ "scope": 651,
+ "src": "3998:186:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 728
+ ],
+ "body": {
+ "id": 333,
+ "nodeType": "Block",
+ "src": "4869:151:1",
+ "statements": [
+ {
+ "assignments": [
+ 315
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 315,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4887:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 333,
+ "src": "4879:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 314,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4879:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 318,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 316,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4897:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4897:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4879:30:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 320,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4935:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 321,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 315,
+ "src": "4941:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 322,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4950:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 319,
+ "name": "_spendAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 650,
+ "src": "4919:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4919:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 324,
+ "nodeType": "ExpressionStatement",
+ "src": "4919:37:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 326,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4976:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 327,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 307,
+ "src": "4982:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 328,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4986:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 325,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "4966:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4966:26:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 330,
+ "nodeType": "ExpressionStatement",
+ "src": "4966:26:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5009:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 313,
+ "id": 332,
+ "nodeType": "Return",
+ "src": "5002:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 303,
+ "nodeType": "StructuredDocumentation",
+ "src": "4190:581:1",
+ "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."
+ },
+ "functionSelector": "23b872dd",
+ "id": 334,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "4785:12:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 305,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "4806:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4798:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 304,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4798:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 307,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "4820:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4812:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 306,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4812:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4832:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4824:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4824:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4797:41:1"
+ },
+ "returnParameters": {
+ "id": 313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4863:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 311,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4863:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4862:6:1"
+ },
+ "scope": 651,
+ "src": "4776:244:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 380,
+ "nodeType": "Block",
+ "src": "5462:231:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 344,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5476:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5492:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 346,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5484:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 345,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5484:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5484:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5476:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 358,
+ "nodeType": "IfStatement",
+ "src": "5472:86:1",
+ "trueBody": {
+ "id": 357,
+ "nodeType": "Block",
+ "src": "5496:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5544:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5536:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 351,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5536:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5536:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 350,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "5517:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5517:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 356,
+ "nodeType": "RevertStatement",
+ "src": "5510:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 359,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5571:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5585:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5577:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 360,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5577:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5577:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5571:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 373,
+ "nodeType": "IfStatement",
+ "src": "5567:86:1",
+ "trueBody": {
+ "id": 372,
+ "nodeType": "Block",
+ "src": "5589:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5639:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 366,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5631:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5631:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 365,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "5610:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5610:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 371,
+ "nodeType": "RevertStatement",
+ "src": "5603:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 375,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5670:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 376,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5676:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 377,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 341,
+ "src": "5680:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 374,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "5662:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5662:24:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 379,
+ "nodeType": "ExpressionStatement",
+ "src": "5662:24:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 335,
+ "nodeType": "StructuredDocumentation",
+ "src": "5026:362:1",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 381,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_transfer",
+ "nameLocation": "5402:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 342,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 337,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "5420:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5412:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 336,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5412:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 339,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "5434:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5426:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 338,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5426:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 341,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5446:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5438:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 340,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5438:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5411:41:1"
+ },
+ "returnParameters": {
+ "id": 343,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5462:0:1"
+ },
+ "scope": 651,
+ "src": "5393:300:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 457,
+ "nodeType": "Block",
+ "src": "6083:1032:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 391,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6097:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6113:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 392,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6105:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6105:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6097:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 428,
+ "nodeType": "Block",
+ "src": "6271:362:1",
+ "statements": [
+ {
+ "assignments": [
+ 403
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 403,
+ "mutability": "mutable",
+ "name": "fromBalance",
+ "nameLocation": "6293:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 428,
+ "src": "6285:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 402,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6285:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 407,
+ "initialValue": {
+ "baseExpression": {
+ "id": 404,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6307:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 406,
+ "indexExpression": {
+ "id": 405,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6317:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6307:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6285:37:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 408,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6340:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 409,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6354:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6340:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 418,
+ "nodeType": "IfStatement",
+ "src": "6336:115:1",
+ "trueBody": {
+ "id": 417,
+ "nodeType": "Block",
+ "src": "6361:90:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 412,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6411:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 413,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6417:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 414,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6430:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 411,
+ "name": "ERC20InsufficientBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11,
+ "src": "6386:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 415,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6386:50:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 416,
+ "nodeType": "RevertStatement",
+ "src": "6379:57:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 427,
+ "nodeType": "UncheckedBlock",
+ "src": "6464:159:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 419,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6571:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 421,
+ "indexExpression": {
+ "id": 420,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6581:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6571:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 422,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6589:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 423,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6603:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6589:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6571:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 426,
+ "nodeType": "ExpressionStatement",
+ "src": "6571:37:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 429,
+ "nodeType": "IfStatement",
+ "src": "6093:540:1",
+ "trueBody": {
+ "id": 401,
+ "nodeType": "Block",
+ "src": "6117:148:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 397,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6233:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 398,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6249:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6233:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 400,
+ "nodeType": "ExpressionStatement",
+ "src": "6233:21:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 430,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "6647:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6661:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 432,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6653:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 431,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6653:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6653:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6647:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 449,
+ "nodeType": "Block",
+ "src": "6862:206:1",
+ "statements": [
+ {
+ "id": 448,
+ "nodeType": "UncheckedBlock",
+ "src": "6876:182:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 442,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "7021:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 444,
+ "indexExpression": {
+ "id": 443,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7031:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "7021:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 445,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7038:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7021:22:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 447,
+ "nodeType": "ExpressionStatement",
+ "src": "7021:22:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 450,
+ "nodeType": "IfStatement",
+ "src": "6643:425:1",
+ "trueBody": {
+ "id": 441,
+ "nodeType": "Block",
+ "src": "6665:191:1",
+ "statements": [
+ {
+ "id": 440,
+ "nodeType": "UncheckedBlock",
+ "src": "6679:167:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 436,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6810:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "id": 437,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6826:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6810:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 439,
+ "nodeType": "ExpressionStatement",
+ "src": "6810:21:1"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 452,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "7092:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 453,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7098:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 454,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7102:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 451,
+ "name": "Transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 663,
+ "src": "7083:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7083:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 456,
+ "nodeType": "EmitStatement",
+ "src": "7078:30:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 382,
+ "nodeType": "StructuredDocumentation",
+ "src": "5699:304:1",
+ "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."
+ },
+ "id": 458,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_update",
+ "nameLocation": "6017:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 384,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "6033:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6025:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 383,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6025:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 386,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "6047:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6039:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 385,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6039:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 388,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6059:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6051:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 387,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6051:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6024:41:1"
+ },
+ "returnParameters": {
+ "id": 390,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6083:0:1"
+ },
+ "scope": 651,
+ "src": "6008:1107:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 490,
+ "nodeType": "Block",
+ "src": "7514:152:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 466,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7528:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 469,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7547:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7539:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 467,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7539:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7539:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "7528:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 480,
+ "nodeType": "IfStatement",
+ "src": "7524:91:1",
+ "trueBody": {
+ "id": 479,
+ "nodeType": "Block",
+ "src": "7551:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7601:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7593:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 473,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7593:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7593:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 472,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "7572:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7572:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 478,
+ "nodeType": "RevertStatement",
+ "src": "7565:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7640:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7632:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 482,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7632:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7632:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 486,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7644:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 487,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 463,
+ "src": "7653:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 481,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "7624:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 488,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7624:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 489,
+ "nodeType": "ExpressionStatement",
+ "src": "7624:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 459,
+ "nodeType": "StructuredDocumentation",
+ "src": "7121:332:1",
+ "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 491,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_mint",
+ "nameLocation": "7467:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 461,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "7481:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7473:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 460,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7473:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 463,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7498:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7490:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 462,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7490:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7472:32:1"
+ },
+ "returnParameters": {
+ "id": 465,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7514:0:1"
+ },
+ "scope": 651,
+ "src": "7458:208:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 523,
+ "nodeType": "Block",
+ "src": "8040:150:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 499,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8054:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8073:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8065:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 500,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8065:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8065:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "8054:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 513,
+ "nodeType": "IfStatement",
+ "src": "8050:89:1",
+ "trueBody": {
+ "id": 512,
+ "nodeType": "Block",
+ "src": "8077:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 508,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8125:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8117:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 506,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8117:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8117:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 505,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "8098:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8098:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 511,
+ "nodeType": "RevertStatement",
+ "src": "8091:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 515,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8156:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 518,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8173:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8165:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 516,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8165:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 519,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8165:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 520,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 496,
+ "src": "8177:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 514,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "8148:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8148:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 522,
+ "nodeType": "ExpressionStatement",
+ "src": "8148:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 492,
+ "nodeType": "StructuredDocumentation",
+ "src": "7672:307:1",
+ "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"
+ },
+ "id": 524,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_burn",
+ "nameLocation": "7993:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 497,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 494,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "8007:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "7999:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 493,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7999:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 496,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8024:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "8016:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 495,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8016:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7998:32:1"
+ },
+ "returnParameters": {
+ "id": 498,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8040:0:1"
+ },
+ "scope": 651,
+ "src": "7984:206:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 541,
+ "nodeType": "Block",
+ "src": "8800:54:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 535,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 527,
+ "src": "8819:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 536,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 529,
+ "src": "8826:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 537,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 531,
+ "src": "8835:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8842:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 534,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "8810:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8810:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 540,
+ "nodeType": "ExpressionStatement",
+ "src": "8810:37:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 525,
+ "nodeType": "StructuredDocumentation",
+ "src": "8196:525:1",
+ "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."
+ },
+ "id": 542,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "8735:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 532,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 527,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "8752:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8744:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 526,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8744:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 529,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "8767:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8759:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 528,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8759:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8784:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8776:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 530,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8776:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8743:47:1"
+ },
+ "returnParameters": {
+ "id": 533,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8800:0:1"
+ },
+ "scope": 651,
+ "src": "8726:128:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 601,
+ "nodeType": "Block",
+ "src": "9799:334:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 554,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "9813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9830:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9822:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 555,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9822:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 558,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9822:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9813:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 568,
+ "nodeType": "IfStatement",
+ "src": "9809:89:1",
+ "trueBody": {
+ "id": 567,
+ "nodeType": "Block",
+ "src": "9834:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 563,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9884:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9876:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 561,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9876:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 564,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9876:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 560,
+ "name": "ERC20InvalidApprover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 35,
+ "src": "9855:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9855:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 566,
+ "nodeType": "RevertStatement",
+ "src": "9848:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 569,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "9911:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 572,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9930:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9922:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 570,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9922:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 573,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9922:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9911:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 583,
+ "nodeType": "IfStatement",
+ "src": "9907:90:1",
+ "trueBody": {
+ "id": 582,
+ "nodeType": "Block",
+ "src": "9934:63:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9983:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9975:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 576,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9975:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9975:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 575,
+ "name": "ERC20InvalidSpender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 40,
+ "src": "9955:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9955:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 581,
+ "nodeType": "RevertStatement",
+ "src": "9948:38:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 584,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "10006:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 587,
+ "indexExpression": {
+ "id": 585,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10018:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "10006:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 588,
+ "indexExpression": {
+ "id": 586,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10025:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "10006:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 589,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10036:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10006:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 591,
+ "nodeType": "ExpressionStatement",
+ "src": "10006:35:1"
+ },
+ {
+ "condition": {
+ "id": 592,
+ "name": "emitEvent",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 551,
+ "src": "10055:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 600,
+ "nodeType": "IfStatement",
+ "src": "10051:76:1",
+ "trueBody": {
+ "id": 599,
+ "nodeType": "Block",
+ "src": "10066:61:1",
+ "statements": [
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 594,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10094:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 595,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10101:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 596,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10110:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 593,
+ "name": "Approval",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 672,
+ "src": "10085:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10085:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 598,
+ "nodeType": "EmitStatement",
+ "src": "10080:36:1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 543,
+ "nodeType": "StructuredDocumentation",
+ "src": "8860:836:1",
+ "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."
+ },
+ "id": 602,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "9710:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 552,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 545,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "9727:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9719:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 544,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9719:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 547,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "9742:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9734:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 546,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9734:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 549,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9759:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9751:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 548,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9751:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 551,
+ "mutability": "mutable",
+ "name": "emitEvent",
+ "nameLocation": "9771:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9766:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 550,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9766:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9718:63:1"
+ },
+ "returnParameters": {
+ "id": 553,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9799:0:1"
+ },
+ "scope": 651,
+ "src": "9701:432:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 649,
+ "nodeType": "Block",
+ "src": "10504:388:1",
+ "statements": [
+ {
+ "assignments": [
+ 613
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 613,
+ "mutability": "mutable",
+ "name": "currentAllowance",
+ "nameLocation": "10522:16:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 649,
+ "src": "10514:24:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 612,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10514:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 618,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 615,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10551:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 616,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10558:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 614,
+ "name": "allowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 278,
+ "src": "10541:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address,address) view returns (uint256)"
+ }
+ },
+ "id": 617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10541:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10514:52:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 619,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10580:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10605:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10605:7:1",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ }
+ ],
+ "id": 620,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10600:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10600:13:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint256",
+ "typeString": "type(uint256)"
+ }
+ },
+ "id": 624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10614:3:1",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "10600:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10580:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 648,
+ "nodeType": "IfStatement",
+ "src": "10576:310:1",
+ "trueBody": {
+ "id": 647,
+ "nodeType": "Block",
+ "src": "10619:267:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 626,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10637:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 627,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10656:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10637:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 636,
+ "nodeType": "IfStatement",
+ "src": "10633:130:1",
+ "trueBody": {
+ "id": 635,
+ "nodeType": "Block",
+ "src": "10663:100:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 630,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10715:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 631,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10724:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 632,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10742:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 629,
+ "name": "ERC20InsufficientAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 30,
+ "src": "10688:26:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10688:60:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 634,
+ "nodeType": "RevertStatement",
+ "src": "10681:67:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 646,
+ "nodeType": "UncheckedBlock",
+ "src": "10776:100:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 638,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 639,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10820:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 640,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10829:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 641,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10848:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10829:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10855:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 637,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "10804:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10804:57:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 645,
+ "nodeType": "ExpressionStatement",
+ "src": "10804:57:1"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 603,
+ "nodeType": "StructuredDocumentation",
+ "src": "10139:271:1",
+ "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."
+ },
+ "id": 650,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_spendAllowance",
+ "nameLocation": "10424:15:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 610,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 605,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "10448:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10440:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 604,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10440:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 607,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "10463:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10455:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 606,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10455:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 609,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10480:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10472:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10472:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10439:47:1"
+ },
+ "returnParameters": {
+ "id": 611,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10504:0:1"
+ },
+ "scope": 651,
+ "src": "10415:477:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 652,
+ "src": "1106:9788:1",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "105:10790:1"
+ },
+ "id": 1
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ]
+ },
+ "id": 730,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 653,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "106:24:2"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 654,
+ "nodeType": "StructuredDocumentation",
+ "src": "132:71:2",
+ "text": " @dev Interface of the ERC-20 standard as defined in the ERC."
+ },
+ "fullyImplemented": false,
+ "id": 729,
+ "linearizedBaseContracts": [
+ 729
+ ],
+ "name": "IERC20",
+ "nameLocation": "214:6:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 655,
+ "nodeType": "StructuredDocumentation",
+ "src": "227:158:2",
+ "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
+ },
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 663,
+ "name": "Transfer",
+ "nameLocation": "396:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 662,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 657,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "421:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "405:20:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 656,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "405:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 659,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "443:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "427:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 658,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "427:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 661,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "455:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "447:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 660,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "447:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "404:57:2"
+ },
+ "src": "390:72:2"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 664,
+ "nodeType": "StructuredDocumentation",
+ "src": "468:148:2",
+ "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
+ },
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 672,
+ "name": "Approval",
+ "nameLocation": "627:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 671,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 666,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "652:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "636:21:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 665,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "636:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 668,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "675:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "659:23:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 667,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "659:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 670,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "692:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "684:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "684:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "635:63:2"
+ },
+ "src": "621:78:2"
+ },
+ {
+ "documentation": {
+ "id": 673,
+ "nodeType": "StructuredDocumentation",
+ "src": "705:65:2",
+ "text": " @dev Returns the value of tokens in existence."
+ },
+ "functionSelector": "18160ddd",
+ "id": 678,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "784:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 674,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "795:2:2"
+ },
+ "returnParameters": {
+ "id": 677,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 676,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 678,
+ "src": "821:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 675,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "821:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "820:9:2"
+ },
+ "scope": 729,
+ "src": "775:55:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 679,
+ "nodeType": "StructuredDocumentation",
+ "src": "836:71:2",
+ "text": " @dev Returns the value of tokens owned by `account`."
+ },
+ "functionSelector": "70a08231",
+ "id": 686,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "921:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 682,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 681,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "939:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "931:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 680,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "931:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "930:17:2"
+ },
+ "returnParameters": {
+ "id": 685,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 684,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "971:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 683,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "971:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "970:9:2"
+ },
+ "scope": 729,
+ "src": "912:68:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 687,
+ "nodeType": "StructuredDocumentation",
+ "src": "986:213:2",
+ "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 696,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "1213:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 692,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 689,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "1230:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1222:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 688,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1222:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 691,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1242:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1234:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 690,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1234:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1221:27:2"
+ },
+ "returnParameters": {
+ "id": 695,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 694,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1267:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 693,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1267:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1266:6:2"
+ },
+ "scope": 729,
+ "src": "1204:69:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 697,
+ "nodeType": "StructuredDocumentation",
+ "src": "1279:264:2",
+ "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 706,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "1557:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 699,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "1575:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1567:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 698,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1567:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 701,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1590:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1582:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 700,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1582:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1566:32:2"
+ },
+ "returnParameters": {
+ "id": 705,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 704,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1622:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1622:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1621:9:2"
+ },
+ "scope": 729,
+ "src": "1548:83:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 707,
+ "nodeType": "StructuredDocumentation",
+ "src": "1637:667:2",
+ "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 716,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "2318:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 709,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2334:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2326:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 708,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2326:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 711,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2351:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2343:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 710,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2343:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2325:32:2"
+ },
+ "returnParameters": {
+ "id": 715,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 714,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2376:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 713,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2376:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2375:6:2"
+ },
+ "scope": 729,
+ "src": "2309:73:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 717,
+ "nodeType": "StructuredDocumentation",
+ "src": "2388:297:2",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "23b872dd",
+ "id": 728,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "2699:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 724,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 719,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "2720:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2712:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 718,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2712:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 721,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "2734:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2726:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 720,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2726:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 723,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2746:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2738:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 722,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2738:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2711:41:2"
+ },
+ "returnParameters": {
+ "id": 727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 726,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2771:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 725,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2771:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2770:6:2"
+ },
+ "scope": 729,
+ "src": "2690:87:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 730,
+ "src": "204:2575:2",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "106:2674:2"
+ },
+ "id": 2
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 756,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 731,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "125:24:3"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "../IERC20.sol",
+ "id": 733,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 756,
+ "sourceUnit": 730,
+ "src": "151:37:3",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 732,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "159:6:3",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 735,
+ "name": "IERC20",
+ "nameLocations": [
+ "306:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "306:6:3"
+ },
+ "id": 736,
+ "nodeType": "InheritanceSpecifier",
+ "src": "306:6:3"
+ }
+ ],
+ "canonicalName": "IERC20Metadata",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 734,
+ "nodeType": "StructuredDocumentation",
+ "src": "190:87:3",
+ "text": " @dev Interface for the optional metadata functions from the ERC-20 standard."
+ },
+ "fullyImplemented": false,
+ "id": 755,
+ "linearizedBaseContracts": [
+ 755,
+ 729
+ ],
+ "name": "IERC20Metadata",
+ "nameLocation": "288:14:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 737,
+ "nodeType": "StructuredDocumentation",
+ "src": "319:54:3",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 742,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "387:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 738,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "391:2:3"
+ },
+ "returnParameters": {
+ "id": 741,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 740,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 742,
+ "src": "417:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 739,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "417:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "416:15:3"
+ },
+ "scope": 755,
+ "src": "378:54:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 743,
+ "nodeType": "StructuredDocumentation",
+ "src": "438:56:3",
+ "text": " @dev Returns the symbol of the token."
+ },
+ "functionSelector": "95d89b41",
+ "id": 748,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "508:6:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 744,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "514:2:3"
+ },
+ "returnParameters": {
+ "id": 747,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 746,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 748,
+ "src": "540:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 745,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "539:15:3"
+ },
+ "scope": 755,
+ "src": "499:56:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 749,
+ "nodeType": "StructuredDocumentation",
+ "src": "561:65:3",
+ "text": " @dev Returns the decimals places of the token."
+ },
+ "functionSelector": "313ce567",
+ "id": 754,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "640:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "648:2:3"
+ },
+ "returnParameters": {
+ "id": 753,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 752,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 754,
+ "src": "674:5:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 751,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "674:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "673:7:3"
+ },
+ "scope": 755,
+ "src": "631:50:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 756,
+ "src": "278:405:3",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "125:559:3"
+ },
+ "id": 3
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ]
+ },
+ "id": 786,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 757,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "101:24:4"
+ },
+ {
+ "abstract": true,
+ "baseContracts": [],
+ "canonicalName": "Context",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 758,
+ "nodeType": "StructuredDocumentation",
+ "src": "127:496:4",
+ "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
+ },
+ "fullyImplemented": true,
+ "id": 785,
+ "linearizedBaseContracts": [
+ 785
+ ],
+ "name": "Context",
+ "nameLocation": "642:7:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 766,
+ "nodeType": "Block",
+ "src": "718:34:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 763,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "735:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "739:6:4",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "735:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 762,
+ "id": 765,
+ "nodeType": "Return",
+ "src": "728:17:4"
+ }
+ ]
+ },
+ "id": 767,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgSender",
+ "nameLocation": "665:10:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 759,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "675:2:4"
+ },
+ "returnParameters": {
+ "id": 762,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 761,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 767,
+ "src": "709:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 760,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "709:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "708:9:4"
+ },
+ "scope": 785,
+ "src": "656:96:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 775,
+ "nodeType": "Block",
+ "src": "825:32:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 772,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "842:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "846:4:4",
+ "memberName": "data",
+ "nodeType": "MemberAccess",
+ "src": "842:8:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ },
+ "functionReturnParameters": 771,
+ "id": 774,
+ "nodeType": "Return",
+ "src": "835:15:4"
+ }
+ ]
+ },
+ "id": 776,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgData",
+ "nameLocation": "767:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 768,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "775:2:4"
+ },
+ "returnParameters": {
+ "id": 771,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 770,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 776,
+ "src": "809:14:4",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 769,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "809:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "808:16:4"
+ },
+ "scope": 785,
+ "src": "758:99:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 783,
+ "nodeType": "Block",
+ "src": "935:25:4",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "952:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 780,
+ "id": 782,
+ "nodeType": "Return",
+ "src": "945:8:4"
+ }
+ ]
+ },
+ "id": 784,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_contextSuffixLength",
+ "nameLocation": "872:20:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 777,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "892:2:4"
+ },
+ "returnParameters": {
+ "id": 780,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 779,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 784,
+ "src": "926:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 778,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "926:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "925:9:4"
+ },
+ "scope": 785,
+ "src": "863:97:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 786,
+ "src": "624:338:4",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "101:862:4"
+ },
+ "id": 4
+ },
+ "contracts/core/Factory.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Factory.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "IPool": [
+ 2166
+ ],
+ "Math": [
+ 1613
+ ],
+ "Pool": [
+ 2103
+ ],
+ "PoolFactory": [
+ 1019
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 791
+ ],
+ "PoolFactory__InsufficientFunds": [
+ 1624
+ ],
+ "PoolFactory__InsufficientLiquidity": [
+ 1622
+ ],
+ "PoolFactory__NotOwner": [
+ 1620
+ ],
+ "PoolFactory__NotSetter": [
+ 797
+ ],
+ "PoolFactory__PoolExists": [
+ 795
+ ],
+ "PoolFactory__ZeroAddress": [
+ 793
+ ]
+ },
+ "id": 1020,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 787,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:5"
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "file": "./interfaces/IPool.sol",
+ "id": 788,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1020,
+ "sourceUnit": 2167,
+ "src": "60:32:5",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/Pool.sol",
+ "file": "./Pool.sol",
+ "id": 789,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1020,
+ "sourceUnit": 2104,
+ "src": "94:20:5",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "4bea99d9",
+ "id": 791,
+ "name": "PoolFactory__IdenticalAddress",
+ "nameLocation": "124:29:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 790,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "153:2:5"
+ },
+ "src": "118:38:5"
+ },
+ {
+ "errorSelector": "74b959e9",
+ "id": 793,
+ "name": "PoolFactory__ZeroAddress",
+ "nameLocation": "164:24:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 792,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "188:2:5"
+ },
+ "src": "158:33:5"
+ },
+ {
+ "errorSelector": "423d7935",
+ "id": 795,
+ "name": "PoolFactory__PoolExists",
+ "nameLocation": "199:23:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 794,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "222:2:5"
+ },
+ "src": "193:32:5"
+ },
+ {
+ "errorSelector": "e9e17318",
+ "id": 797,
+ "name": "PoolFactory__NotSetter",
+ "nameLocation": "233:22:5",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 796,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "255:2:5"
+ },
+ "src": "227:31:5"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "PoolFactory",
+ "contractDependencies": [
+ 2103
+ ],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 1019,
+ "linearizedBaseContracts": [
+ 1019
+ ],
+ "name": "PoolFactory",
+ "nameLocation": "271:11:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 799,
+ "mutability": "mutable",
+ "name": "feeReceiver",
+ "nameLocation": "306:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "290:27:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 798,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "290:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 803,
+ "mutability": "mutable",
+ "name": "feeReceiverSetter",
+ "nameLocation": "357:17:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "324:50:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ },
+ "typeName": {
+ "id": 802,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 800,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "332:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "324:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 801,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "343:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 809,
+ "mutability": "mutable",
+ "name": "getPairs",
+ "nameLocation": "439:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "383:64:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ },
+ "typeName": {
+ "id": 808,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 804,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "391:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "383:47:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 807,
+ "keyName": "",
+ "keyNameLocation": "-1:-1:-1",
+ "keyType": {
+ "id": 805,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "410:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "402:27:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 806,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "421:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 812,
+ "mutability": "mutable",
+ "name": "allPairs",
+ "nameLocation": "472:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1019,
+ "src": "454:26:5",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 810,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "454:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 811,
+ "nodeType": "ArrayTypeName",
+ "src": "454:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "anonymous": false,
+ "eventSelector": "9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b",
+ "id": 820,
+ "name": "PoolCreated",
+ "nameLocation": "495:11:5",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 814,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "515:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "507:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 813,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "507:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 816,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "531:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "523:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 815,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "523:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 818,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "poolAddress",
+ "nameLocation": "547:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 820,
+ "src": "539:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 817,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "539:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "506:53:5"
+ },
+ "src": "489:71:5"
+ },
+ {
+ "body": {
+ "id": 831,
+ "nodeType": "Block",
+ "src": "608:63:5",
+ "statements": [
+ {
+ "expression": {
+ "id": 829,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 825,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "619:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 827,
+ "indexExpression": {
+ "id": 826,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 822,
+ "src": "637:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "619:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 828,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "659:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "619:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 830,
+ "nodeType": "ExpressionStatement",
+ "src": "619:44:5"
+ }
+ ]
+ },
+ "id": 832,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 823,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 822,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "588:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 832,
+ "src": "580:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 821,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "580:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "579:28:5"
+ },
+ "returnParameters": {
+ "id": 824,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "608:0:5"
+ },
+ "scope": 1019,
+ "src": "568:103:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 941,
+ "nodeType": "Block",
+ "src": "795:978:5",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 843,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 841,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "810:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 842,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "820:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "810:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 847,
+ "nodeType": "IfStatement",
+ "src": "806:60:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 844,
+ "name": "PoolFactory__IdenticalAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 791,
+ "src": "835:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "835:31:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 846,
+ "nodeType": "RevertStatement",
+ "src": "828:38:5"
+ }
+ },
+ {
+ "assignments": [
+ 849,
+ 851
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 849,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "886:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "878:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 848,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "878:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 851,
+ "mutability": "mutable",
+ "name": "token1",
+ "nameLocation": "902:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "894:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 850,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "894:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 862,
+ "initialValue": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 854,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 852,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "912:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 853,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "921:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "912:15:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "id": 858,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "976:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 859,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "984:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 860,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "975:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "id": 861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "912:79:5",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 855,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "944:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 856,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "952:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 857,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "943:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "877:114:5"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 868,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 863,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1089:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 866,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1107:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 865,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1099:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 864,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1099:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 867,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1099:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1089:20:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 872,
+ "nodeType": "IfStatement",
+ "src": "1085:59:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 869,
+ "name": "PoolFactory__ZeroAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 793,
+ "src": "1118:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 870,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1118:26:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 871,
+ "nodeType": "RevertStatement",
+ "src": "1111:33:5"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 873,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1159:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 875,
+ "indexExpression": {
+ "id": 874,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1168:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1159:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 877,
+ "indexExpression": {
+ "id": 876,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1176:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1159:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 880,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1195:1:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 879,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1187:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 878,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1187:7:5",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1187:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1159:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 886,
+ "nodeType": "IfStatement",
+ "src": "1155:89:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 883,
+ "name": "PoolFactory__PoolExists",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 795,
+ "src": "1219:23:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 884,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1219:25:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 885,
+ "nodeType": "RevertStatement",
+ "src": "1212:32:5"
+ }
+ },
+ {
+ "assignments": [
+ 888
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 888,
+ "mutability": "mutable",
+ "name": "bytecode",
+ "nameLocation": "1270:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "1257:21:5",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 887,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "1257:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 893,
+ "initialValue": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 890,
+ "name": "Pool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2103,
+ "src": "1286:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ ],
+ "id": 889,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "1281:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1281:10:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_contract$_Pool_$2103",
+ "typeString": "type(contract Pool)"
+ }
+ },
+ "id": 892,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1292:12:5",
+ "memberName": "creationCode",
+ "nodeType": "MemberAccess",
+ "src": "1281:23:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1257:47:5"
+ },
+ {
+ "assignments": [
+ 895
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 895,
+ "mutability": "mutable",
+ "name": "salt",
+ "nameLocation": "1323:4:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 941,
+ "src": "1315:12:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ },
+ "typeName": {
+ "id": 894,
+ "name": "bytes32",
+ "nodeType": "ElementaryTypeName",
+ "src": "1315:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 903,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 899,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "1357:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 900,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "1365:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 897,
+ "name": "abi",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -1,
+ "src": "1340:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_abi",
+ "typeString": "abi"
+ }
+ },
+ "id": 898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "1344:12:5",
+ "memberName": "encodePacked",
+ "nodeType": "MemberAccess",
+ "src": "1340:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
+ "typeString": "function () pure returns (bytes memory)"
+ }
+ },
+ "id": 901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1340:32:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bytes_memory_ptr",
+ "typeString": "bytes memory"
+ }
+ ],
+ "id": 896,
+ "name": "keccak256",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -8,
+ "src": "1330:9:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
+ "typeString": "function (bytes memory) pure returns (bytes32)"
+ }
+ },
+ "id": 902,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1330:43:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes32",
+ "typeString": "bytes32"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1315:58:5"
+ },
+ {
+ "AST": {
+ "nodeType": "YulBlock",
+ "src": "1427:93:5",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1442:67:5",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1465:1:5",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "arguments": [
+ {
+ "name": "bytecode",
+ "nodeType": "YulIdentifier",
+ "src": "1472:8:5"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1482:2:5",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1468:3:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1468:17:5"
+ },
+ {
+ "arguments": [
+ {
+ "name": "bytecode",
+ "nodeType": "YulIdentifier",
+ "src": "1493:8:5"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1487:5:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1487:15:5"
+ },
+ {
+ "name": "salt",
+ "nodeType": "YulIdentifier",
+ "src": "1504:4:5"
+ }
+ ],
+ "functionName": {
+ "name": "create2",
+ "nodeType": "YulIdentifier",
+ "src": "1457:7:5"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1457:52:5"
+ },
+ "variableNames": [
+ {
+ "name": "poolAddress",
+ "nodeType": "YulIdentifier",
+ "src": "1442:11:5"
+ }
+ ]
+ }
+ ]
+ },
+ "evmVersion": "paris",
+ "externalReferences": [
+ {
+ "declaration": 888,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1472:8:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 888,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1493:8:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 839,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1442:11:5",
+ "valueSize": 1
+ },
+ {
+ "declaration": 895,
+ "isOffset": false,
+ "isSlot": false,
+ "src": "1504:4:5",
+ "valueSize": 1
+ }
+ ],
+ "id": 904,
+ "nodeType": "InlineAssembly",
+ "src": "1418:102:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 909,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 834,
+ "src": "1555:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 910,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 836,
+ "src": "1563:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 906,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1537:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 905,
+ "name": "Pool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2103,
+ "src": "1532:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Pool_$2103_$",
+ "typeString": "type(contract Pool)"
+ }
+ },
+ "id": 907,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1532:17:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ },
+ "id": 908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1550:4:5",
+ "memberName": "init",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1683,
+ "src": "1532:22:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address) external"
+ }
+ },
+ "id": 911,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1532:38:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 912,
+ "nodeType": "ExpressionStatement",
+ "src": "1532:38:5"
+ },
+ {
+ "expression": {
+ "id": 919,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 913,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1583:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 916,
+ "indexExpression": {
+ "id": 914,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1592:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1583:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 917,
+ "indexExpression": {
+ "id": 915,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1600:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1583:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 918,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1610:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1583:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 920,
+ "nodeType": "ExpressionStatement",
+ "src": "1583:38:5"
+ },
+ {
+ "expression": {
+ "id": 927,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 921,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1632:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 924,
+ "indexExpression": {
+ "id": 922,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1641:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1632:16:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 925,
+ "indexExpression": {
+ "id": 923,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1649:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "1632:24:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 926,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1659:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1632:38:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 928,
+ "nodeType": "ExpressionStatement",
+ "src": "1632:38:5"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 932,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1695:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 929,
+ "name": "allPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 812,
+ "src": "1681:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage",
+ "typeString": "address[] storage ref"
+ }
+ },
+ "id": 931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1690:4:5",
+ "memberName": "push",
+ "nodeType": "MemberAccess",
+ "src": "1681:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$",
+ "typeString": "function (address[] storage pointer,address)"
+ }
+ },
+ "id": 933,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1681:26:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 934,
+ "nodeType": "ExpressionStatement",
+ "src": "1681:26:5"
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 936,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 849,
+ "src": "1737:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 937,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 851,
+ "src": "1745:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 938,
+ "name": "poolAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 839,
+ "src": "1753:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 935,
+ "name": "PoolCreated",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 820,
+ "src": "1725:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (address,address,address)"
+ }
+ },
+ "id": 939,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1725:40:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 940,
+ "nodeType": "EmitStatement",
+ "src": "1720:45:5"
+ }
+ ]
+ },
+ "functionSelector": "e3433615",
+ "id": 942,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createPool",
+ "nameLocation": "688:10:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 837,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 834,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "717:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "709:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 833,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "709:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 836,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "742:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "734:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 835,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "734:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "698:57:5"
+ },
+ "returnParameters": {
+ "id": 840,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 839,
+ "mutability": "mutable",
+ "name": "poolAddress",
+ "nameLocation": "782:11:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 942,
+ "src": "774:19:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 838,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "774:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "773:21:5"
+ },
+ "scope": 1019,
+ "src": "679:1094:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 957,
+ "nodeType": "Block",
+ "src": "1895:52:5",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 951,
+ "name": "getPairs",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 809,
+ "src": "1913:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_address_$_$",
+ "typeString": "mapping(address => mapping(address => address))"
+ }
+ },
+ "id": 953,
+ "indexExpression": {
+ "id": 952,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 944,
+ "src": "1922:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1913:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_address_$",
+ "typeString": "mapping(address => address)"
+ }
+ },
+ "id": 955,
+ "indexExpression": {
+ "id": 954,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 946,
+ "src": "1931:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "1913:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 950,
+ "id": 956,
+ "nodeType": "Return",
+ "src": "1906:33:5"
+ }
+ ]
+ },
+ "functionSelector": "4a70f02e",
+ "id": 958,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenPairs",
+ "nameLocation": "1790:13:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 947,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 944,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "1822:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1814:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 943,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1814:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 946,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "1848:7:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1840:15:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 945,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1840:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1803:59:5"
+ },
+ "returnParameters": {
+ "id": 950,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 949,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 958,
+ "src": "1886:7:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 948,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1886:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1885:9:5"
+ },
+ "scope": 1019,
+ "src": "1781:166:5",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 970,
+ "nodeType": "Block",
+ "src": "2010:73:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 963,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2021:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 964,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2021:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 965,
+ "nodeType": "ExpressionStatement",
+ "src": "2021:15:5"
+ },
+ {
+ "expression": {
+ "id": 968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 966,
+ "name": "feeReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 799,
+ "src": "2049:11:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 967,
+ "name": "_feeReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 960,
+ "src": "2063:12:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "2049:26:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 969,
+ "nodeType": "ExpressionStatement",
+ "src": "2049:26:5"
+ }
+ ]
+ },
+ "functionSelector": "efdcd974",
+ "id": 971,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "setFeeReceiver",
+ "nameLocation": "1964:14:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 961,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 960,
+ "mutability": "mutable",
+ "name": "_feeReceiver",
+ "nameLocation": "1987:12:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 971,
+ "src": "1979:20:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 959,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1979:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1978:22:5"
+ },
+ "returnParameters": {
+ "id": 962,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2010:0:5"
+ },
+ "scope": 1019,
+ "src": "1955:128:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 985,
+ "nodeType": "Block",
+ "src": "2160:91:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 976,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2171:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 977,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2171:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 978,
+ "nodeType": "ExpressionStatement",
+ "src": "2171:15:5"
+ },
+ {
+ "expression": {
+ "id": 983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 979,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2199:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 981,
+ "indexExpression": {
+ "id": 980,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 973,
+ "src": "2217:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2199:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "74727565",
+ "id": 982,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2239:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "src": "2199:44:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 984,
+ "nodeType": "ExpressionStatement",
+ "src": "2199:44:5"
+ }
+ ]
+ },
+ "functionSelector": "5ac40ab3",
+ "id": 986,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addToFeeReceiverSetter",
+ "nameLocation": "2100:22:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 974,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 973,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "2131:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 986,
+ "src": "2123:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 972,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2123:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2122:28:5"
+ },
+ "returnParameters": {
+ "id": 975,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2160:0:5"
+ },
+ "scope": 1019,
+ "src": "2091:160:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1000,
+ "nodeType": "Block",
+ "src": "2333:92:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 991,
+ "name": "checkIfSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1018,
+ "src": "2344:13:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$__$",
+ "typeString": "function () view"
+ }
+ },
+ "id": 992,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2344:15:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 993,
+ "nodeType": "ExpressionStatement",
+ "src": "2344:15:5"
+ },
+ {
+ "expression": {
+ "id": 998,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 994,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2372:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 996,
+ "indexExpression": {
+ "id": 995,
+ "name": "_feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 988,
+ "src": "2390:18:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "2372:37:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "66616c7365",
+ "id": 997,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2412:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ },
+ "src": "2372:45:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 999,
+ "nodeType": "ExpressionStatement",
+ "src": "2372:45:5"
+ }
+ ]
+ },
+ "functionSelector": "48397023",
+ "id": 1001,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "removeFromFeeReceiverSetter",
+ "nameLocation": "2268:27:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 989,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 988,
+ "mutability": "mutable",
+ "name": "_feeReceiverSetter",
+ "nameLocation": "2304:18:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1001,
+ "src": "2296:26:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 987,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2296:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2295:28:5"
+ },
+ "returnParameters": {
+ "id": 990,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2333:0:5"
+ },
+ "scope": 1019,
+ "src": "2259:166:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1017,
+ "nodeType": "Block",
+ "src": "2472:121:5",
+ "statements": [
+ {
+ "assignments": [
+ 1005
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1005,
+ "mutability": "mutable",
+ "name": "ifSetter",
+ "nameLocation": "2488:8:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 1017,
+ "src": "2483:13:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 1004,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2483:4:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1010,
+ "initialValue": {
+ "baseExpression": {
+ "id": 1006,
+ "name": "feeReceiverSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 803,
+ "src": "2499:17:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
+ "typeString": "mapping(address => bool)"
+ }
+ },
+ "id": 1009,
+ "indexExpression": {
+ "expression": {
+ "id": 1007,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "2517:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1008,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2521:6:5",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "2517:10:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "2499:29:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2483:45:5"
+ },
+ {
+ "condition": {
+ "id": 1012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "!",
+ "prefix": true,
+ "src": "2543:9:5",
+ "subExpression": {
+ "id": 1011,
+ "name": "ifSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1005,
+ "src": "2544:8:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1016,
+ "nodeType": "IfStatement",
+ "src": "2539:46:5",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1013,
+ "name": "PoolFactory__NotSetter",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 797,
+ "src": "2561:22:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1014,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2561:24:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1015,
+ "nodeType": "RevertStatement",
+ "src": "2554:31:5"
+ }
+ }
+ ]
+ },
+ "id": 1018,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "checkIfSetter",
+ "nameLocation": "2442:13:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1002,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2455:2:5"
+ },
+ "returnParameters": {
+ "id": 1003,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2472:0:5"
+ },
+ "scope": 1019,
+ "src": "2433:160:5",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 1020,
+ "src": "262:2334:5",
+ "usedErrors": [
+ 791,
+ 793,
+ 795,
+ 797
+ ],
+ "usedEvents": [
+ 820
+ ]
+ }
+ ],
+ "src": "33:2563:5"
+ },
+ "id": 5
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/LiquidityProvider.sol",
+ "exportedSymbols": {
+ "DefiLibrary": [
+ 2295
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IFactory": [
+ 2124
+ ],
+ "IPool": [
+ 2166
+ ],
+ "IWEDU": [
+ 2186
+ ],
+ "LiquidityProvider": [
+ 1537
+ ],
+ "LiquidityProvider__EDUTransferFailed": [
+ 1032
+ ],
+ "LiquidityProvider__InsufficientAmount": [
+ 1028
+ ],
+ "LiquidityProvider__InsufficientOutputAmount": [
+ 1030
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 2190
+ ],
+ "PoolFactory__ZeroAddress": [
+ 2192
+ ]
+ },
+ "id": 1538,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1021,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:6"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "id": 1022,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 730,
+ "src": "120:56:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IFactory.sol",
+ "file": "./interfaces/IFactory.sol",
+ "id": 1023,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2125,
+ "src": "178:35:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "file": "./interfaces/IPool.sol",
+ "id": 1024,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2167,
+ "src": "215:32:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/interfaces/IWedu.sol",
+ "file": "./interfaces/IWedu.sol",
+ "id": 1025,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2187,
+ "src": "249:32:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/libraries/Library.sol",
+ "file": "./libraries/Library.sol",
+ "id": 1026,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 1538,
+ "sourceUnit": 2296,
+ "src": "283:33:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "d0368649",
+ "id": 1028,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nameLocation": "326:37:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1027,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "363:2:6"
+ },
+ "src": "320:46:6"
+ },
+ {
+ "errorSelector": "dec0fbbe",
+ "id": 1030,
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "nameLocation": "374:43:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1029,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "417:2:6"
+ },
+ "src": "368:52:6"
+ },
+ {
+ "errorSelector": "0221f34c",
+ "id": 1032,
+ "name": "LiquidityProvider__EDUTransferFailed",
+ "nameLocation": "428:36:6",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1031,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "464:2:6"
+ },
+ "src": "422:45:6"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "LiquidityProvider",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 1537,
+ "linearizedBaseContracts": [
+ 1537
+ ],
+ "name": "LiquidityProvider",
+ "nameLocation": "480:17:6",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 1034,
+ "mutability": "immutable",
+ "name": "factoryAddress",
+ "nameLocation": "531:14:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1537,
+ "src": "505:40:6",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1033,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "505:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1036,
+ "mutability": "immutable",
+ "name": "WEDU",
+ "nameLocation": "578:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1537,
+ "src": "552:30:6",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1035,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "552:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1051,
+ "nodeType": "Block",
+ "src": "643:74:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1045,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1043,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "654:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1044,
+ "name": "_factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1038,
+ "src": "671:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "654:32:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1046,
+ "nodeType": "ExpressionStatement",
+ "src": "654:32:6"
+ },
+ {
+ "expression": {
+ "id": 1049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1047,
+ "name": "WEDU",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1036,
+ "src": "697:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1048,
+ "name": "_WEDU",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1040,
+ "src": "704:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "697:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1050,
+ "nodeType": "ExpressionStatement",
+ "src": "697:12:6"
+ }
+ ]
+ },
+ "id": 1052,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1041,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1038,
+ "mutability": "mutable",
+ "name": "_factoryAddress",
+ "nameLocation": "611:15:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1052,
+ "src": "603:23:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1037,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "603:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1040,
+ "mutability": "mutable",
+ "name": "_WEDU",
+ "nameLocation": "636:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1052,
+ "src": "628:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1039,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "628:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "602:40:6"
+ },
+ "returnParameters": {
+ "id": 1042,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "643:0:6"
+ },
+ "scope": 1537,
+ "src": "591:126:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1184,
+ "nodeType": "Block",
+ "src": "995:1414:6",
+ "statements": [
+ {
+ "assignments": [
+ 1072
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1072,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "1014:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1006:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1071,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1006:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1080,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1077,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1054,
+ "src": "1060:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1078,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1056,
+ "src": "1069:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1074,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "1030:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1073,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "1021:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1075,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1021:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1076,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1046:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "1021:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1079,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1021:56:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1006:71:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1081,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1092:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1108:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1100:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1082,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1100:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1085,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1100:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1092:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1097,
+ "nodeType": "IfStatement",
+ "src": "1088:97:6",
+ "trueBody": {
+ "expression": {
+ "id": 1095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1087,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1125:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1092,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1054,
+ "src": "1168:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1093,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1056,
+ "src": "1177:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1089,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "1141:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1088,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "1132:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1090,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1132:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1091,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1157:10:6",
+ "memberName": "createPool",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2123,
+ "src": "1132:35:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1094,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1132:53:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "1125:60:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1096,
+ "nodeType": "ExpressionStatement",
+ "src": "1125:60:6"
+ }
+ },
+ {
+ "assignments": [
+ 1099,
+ 1101
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1099,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "1207:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1199:16:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1098,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1199:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1101,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "1225:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1184,
+ "src": "1217:16:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1100,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1217:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1107,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1103,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1072,
+ "src": "1243:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1102,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "1237:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1104,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1105,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1249:16:6",
+ "memberName": "getTokenReserves",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2156,
+ "src": "1237:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view external returns (uint256,uint256)"
+ }
+ },
+ "id": 1106,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:30:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1198:69:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1114,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1110,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1108,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "1284:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1109,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1296:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1284:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1113,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1111,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "1301:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1112,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1313:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1301:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1284:30:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1182,
+ "nodeType": "Block",
+ "src": "1416:986:6",
+ "statements": [
+ {
+ "assignments": [
+ 1125
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1125,
+ "mutability": "mutable",
+ "name": "optimalAmountOfTokenB",
+ "nameLocation": "1439:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1182,
+ "src": "1431:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1124,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1431:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1131,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1127,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1487:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1128,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "1527:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1129,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "1554:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1126,
+ "name": "quote",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1460,
+ "src": "1463:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1130,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1463:114:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1431:146:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1134,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1132,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1596:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 1133,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "1621:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1596:46:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1180,
+ "nodeType": "Block",
+ "src": "1938:453:6",
+ "statements": [
+ {
+ "assignments": [
+ 1152
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1152,
+ "mutability": "mutable",
+ "name": "amountAOptimal",
+ "nameLocation": "1965:14:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1180,
+ "src": "1957:22:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1957:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1158,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1154,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "2010:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1155,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1101,
+ "src": "2054:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1156,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1099,
+ "src": "2085:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1153,
+ "name": "quote",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1460,
+ "src": "1982:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1157,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1982:130:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1957:155:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1162,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1160,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2138:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "id": 1161,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "2156:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2138:39:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 1159,
+ "name": "assert",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -3,
+ "src": "2131:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
+ "typeString": "function (bool) pure"
+ }
+ },
+ "id": 1163,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2131:47:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1164,
+ "nodeType": "ExpressionStatement",
+ "src": "2131:47:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1167,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1165,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2201:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1166,
+ "name": "minTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1062,
+ "src": "2218:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2201:26:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1171,
+ "nodeType": "IfStatement",
+ "src": "2197:99:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1168,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1028,
+ "src": "2257:37:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1169,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2257:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1170,
+ "nodeType": "RevertStatement",
+ "src": "2250:46:6"
+ }
+ },
+ {
+ "expression": {
+ "id": 1178,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1172,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "2316:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1173,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "2325:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1174,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "2315:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1175,
+ "name": "amountAOptimal",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1152,
+ "src": "2337:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1176,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "2353:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1177,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2336:39:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "2315:60:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1179,
+ "nodeType": "ExpressionStatement",
+ "src": "2315:60:6"
+ }
+ ]
+ },
+ "id": 1181,
+ "nodeType": "IfStatement",
+ "src": "1592:799:6",
+ "trueBody": {
+ "id": 1150,
+ "nodeType": "Block",
+ "src": "1644:288:6",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1137,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1135,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1667:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1136,
+ "name": "minTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1064,
+ "src": "1691:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1667:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1141,
+ "nodeType": "IfStatement",
+ "src": "1663:106:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1138,
+ "name": "LiquidityProvider__InsufficientAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1028,
+ "src": "1730:37:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1139,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1730:39:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1140,
+ "nodeType": "RevertStatement",
+ "src": "1723:46:6"
+ }
+ },
+ {
+ "expression": {
+ "id": 1148,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1142,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "1789:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1143,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "1798:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1144,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "1788:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1145,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1832:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1146,
+ "name": "optimalAmountOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1125,
+ "src": "1876:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1147,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1809:107:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "1788:128:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1149,
+ "nodeType": "ExpressionStatement",
+ "src": "1788:128:6"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1183,
+ "nodeType": "IfStatement",
+ "src": "1280:1122:6",
+ "trueBody": {
+ "id": 1123,
+ "nodeType": "Block",
+ "src": "1316:94:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1121,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1115,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1067,
+ "src": "1332:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1116,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1069,
+ "src": "1341:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1117,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "1331:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "components": [
+ {
+ "id": 1118,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1058,
+ "src": "1353:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1119,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1060,
+ "src": "1376:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1120,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1352:46:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "1331:67:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1122,
+ "nodeType": "ExpressionStatement",
+ "src": "1331:67:6"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1185,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_addLiquidity",
+ "nameLocation": "734:13:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1065,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1054,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "766:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "758:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1053,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "758:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1056,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "792:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "784:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1055,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "784:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1058,
+ "mutability": "mutable",
+ "name": "amountOfTokenADesired",
+ "nameLocation": "818:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "810:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1057,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "810:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1060,
+ "mutability": "mutable",
+ "name": "amountOfTokenBDesired",
+ "nameLocation": "858:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "850:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1059,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "850:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1062,
+ "mutability": "mutable",
+ "name": "minTokenA",
+ "nameLocation": "898:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "890:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1061,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "890:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1064,
+ "mutability": "mutable",
+ "name": "minTokenB",
+ "nameLocation": "926:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "918:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1063,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "918:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "747:195:6"
+ },
+ "returnParameters": {
+ "id": 1070,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1067,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "969:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "961:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1066,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "961:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1069,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "986:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1185,
+ "src": "978:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1068,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "978:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "960:34:6"
+ },
+ "scope": 1537,
+ "src": "725:1684:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1259,
+ "nodeType": "Block",
+ "src": "2703:487:6",
+ "statements": [
+ {
+ "expression": {
+ "id": 1217,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 1206,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1200,
+ "src": "2715:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1207,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1202,
+ "src": "2724:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1208,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "2714:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1210,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "2763:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1211,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "2784:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1212,
+ "name": "amountOfTokenADesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1191,
+ "src": "2805:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1213,
+ "name": "amountOfTokenBDesired",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1193,
+ "src": "2841:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1214,
+ "name": "minTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1195,
+ "src": "2877:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1215,
+ "name": "minTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1197,
+ "src": "2901:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1209,
+ "name": "_addLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1185,
+ "src": "2735:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function (address,address,uint256,uint256,uint256,uint256) returns (uint256,uint256)"
+ }
+ },
+ "id": 1216,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2735:186:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "src": "2714:207:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1218,
+ "nodeType": "ExpressionStatement",
+ "src": "2714:207:6"
+ },
+ {
+ "assignments": [
+ 1220
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1220,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "2940:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1259,
+ "src": "2932:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1219,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2932:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1228,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1225,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "2986:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1226,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "2994:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1222,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "2956:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1221,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "2947:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2947:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1224,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2972:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "2947:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2947:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2932:69:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1233,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3040:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1234,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3044:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3040:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1235,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3052:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1236,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1200,
+ "src": "3058:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1230,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1187,
+ "src": "3019:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1229,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3012:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1231,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3012:14:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3027:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "3012:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1237,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3012:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1238,
+ "nodeType": "ExpressionStatement",
+ "src": "3012:54:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1243,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3105:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1244,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3109:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3105:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1245,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3117:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1246,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1202,
+ "src": "3123:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1240,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1189,
+ "src": "3084:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1239,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3077:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1241,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3077:14:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1242,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3092:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "3077:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1247,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3077:54:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1248,
+ "nodeType": "ExpressionStatement",
+ "src": "3077:54:6"
+ },
+ {
+ "expression": {
+ "id": 1257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1249,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1204,
+ "src": "3142:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1254,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "3171:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1255,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3175:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "3171:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1251,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1220,
+ "src": "3160:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1250,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "3154:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3154:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1253,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3166:4:6",
+ "memberName": "mint",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2140,
+ "src": "3154:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) external returns (uint256)"
+ }
+ },
+ "id": 1256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3154:28:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3142:40:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1258,
+ "nodeType": "ExpressionStatement",
+ "src": "3142:40:6"
+ }
+ ]
+ },
+ "functionSelector": "3351733f",
+ "id": 1260,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "addLiquidity",
+ "nameLocation": "2426:12:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1198,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1187,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "2457:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2449:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1186,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2449:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1189,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "2482:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2474:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1188,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2474:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1191,
+ "mutability": "mutable",
+ "name": "amountOfTokenADesired",
+ "nameLocation": "2507:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2499:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1190,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2499:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1193,
+ "mutability": "mutable",
+ "name": "amountOfTokenBDesired",
+ "nameLocation": "2547:21:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2539:29:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1192,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2539:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1195,
+ "mutability": "mutable",
+ "name": "minTokenA",
+ "nameLocation": "2587:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2579:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1194,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2579:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1197,
+ "mutability": "mutable",
+ "name": "minTokenB",
+ "nameLocation": "2615:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2607:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1196,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2607:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2438:193:6"
+ },
+ "returnParameters": {
+ "id": 1205,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1200,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "2658:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2650:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1199,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2650:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1202,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "2675:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2667:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1201,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2667:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1204,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "2692:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1260,
+ "src": "2684:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1203,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2684:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2649:53:6"
+ },
+ "scope": 1537,
+ "src": "2417:773:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1349,
+ "nodeType": "Block",
+ "src": "4116:531:6",
+ "statements": [
+ {
+ "body": {
+ "id": 1347,
+ "nodeType": "Block",
+ "src": "4166:474:6",
+ "statements": [
+ {
+ "assignments": [
+ 1286,
+ 1288
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1286,
+ "mutability": "mutable",
+ "name": "input",
+ "nameLocation": "4190:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4182:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1285,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4182:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1288,
+ "mutability": "mutable",
+ "name": "output",
+ "nameLocation": "4205:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4197:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1287,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4197:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1298,
+ "initialValue": {
+ "components": [
+ {
+ "baseExpression": {
+ "id": 1289,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4216:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1291,
+ "indexExpression": {
+ "id": 1290,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4221:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4216:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1292,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4225:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1296,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1295,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1293,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4230:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1294,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4234:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4230:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4225:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 1297,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4215:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4181:56:6"
+ },
+ {
+ "assignments": [
+ 1300,
+ null
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1300,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "4261:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4253:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1299,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4253:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ null
+ ],
+ "id": 1306,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1303,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1286,
+ "src": "4296:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1304,
+ "name": "output",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1288,
+ "src": "4303:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "id": 1301,
+ "name": "DefiLibrary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2295,
+ "src": "4273:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$",
+ "typeString": "type(library DefiLibrary)"
+ }
+ },
+ "id": 1302,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4285:10:6",
+ "memberName": "sortTokens",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2236,
+ "src": "4273:22:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_address_$_t_address_$",
+ "typeString": "function (address,address) pure returns (address,address)"
+ }
+ },
+ "id": 1305,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4273:37:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4252:58:6"
+ },
+ {
+ "assignments": [
+ 1308
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1308,
+ "mutability": "mutable",
+ "name": "amountOut",
+ "nameLocation": "4333:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4325:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1307,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4325:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1314,
+ "initialValue": {
+ "baseExpression": {
+ "id": 1309,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "4345:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1313,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1312,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1310,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4353:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1311,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4357:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4353:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4345:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4325:34:6"
+ },
+ {
+ "assignments": [
+ 1316,
+ 1318
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1316,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "4383:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4375:18:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1315,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4375:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1318,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "4403:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1347,
+ "src": "4395:18:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1317,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4395:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1335,
+ "initialValue": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1321,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1319,
+ "name": "input",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1286,
+ "src": "4417:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 1320,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1300,
+ "src": "4426:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "4417:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4504:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4496:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1328,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4496:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4496:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1332,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4508:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1333,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4495:23:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "id": 1334,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "4417:101:6",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 1322,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4453:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 1325,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4472:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 1324,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4464:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 1323,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4464:7:6",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1326,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4464:10:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1327,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4452:23:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4374:144:6"
+ },
+ {
+ "documentation": "TODO: In case of multiple hops ",
+ "expression": {
+ "arguments": [
+ {
+ "id": 1340,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1308,
+ "src": "4601:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1341,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1263,
+ "src": "4612:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1343,
+ "indexExpression": {
+ "id": 1342,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4620:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4612:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1344,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1270,
+ "src": "4624:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1337,
+ "name": "_pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1268,
+ "src": "4589:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1336,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "4583:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1338,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4583:12:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1339,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4596:4:6",
+ "memberName": "swap",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2165,
+ "src": "4583:17:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$",
+ "typeString": "function (uint256,uint256,address) external"
+ }
+ },
+ "id": 1345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4583:45:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1346,
+ "nodeType": "ExpressionStatement",
+ "src": "4583:45:6"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1276,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4140:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1277,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1266,
+ "src": "4144:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1278,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4149:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "4144:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1279,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4158:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "4144:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4140:19:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1348,
+ "initializationExpression": {
+ "assignments": [
+ 1274
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1274,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "4137:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1348,
+ "src": "4132:6:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1273,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4132:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1275,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4132:6:6"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 1283,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "4161:3:6",
+ "subExpression": {
+ "id": 1282,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1274,
+ "src": "4161:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1284,
+ "nodeType": "ExpressionStatement",
+ "src": "4161:3:6"
+ },
+ "nodeType": "ForStatement",
+ "src": "4127:513:6"
+ }
+ ]
+ },
+ "id": 1350,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_swap",
+ "nameLocation": "3981:5:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1271,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1263,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "4014:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "3997:24:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1261,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3997:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1262,
+ "nodeType": "ArrayTypeName",
+ "src": "3997:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1266,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "4049:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4032:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1264,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4032:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1265,
+ "nodeType": "ArrayTypeName",
+ "src": "4032:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1268,
+ "mutability": "mutable",
+ "name": "_pair",
+ "nameLocation": "4072:5:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4064:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1267,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4064:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1270,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "4096:3:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1350,
+ "src": "4088:11:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1269,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4088:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3986:120:6"
+ },
+ "returnParameters": {
+ "id": 1272,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4116:0:6"
+ },
+ "scope": 1537,
+ "src": "3972:675:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1420,
+ "nodeType": "Block",
+ "src": "4899:392:6",
+ "statements": [
+ {
+ "assignments": [
+ 1365
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1365,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "4918:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1420,
+ "src": "4910:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1364,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4910:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1377,
+ "initialValue": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1370,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "4964:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1372,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1371,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4969:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4964:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1373,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "4973:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1375,
+ "indexExpression": {
+ "hexValue": "31",
+ "id": 1374,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4978:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "4973:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1367,
+ "name": "factoryAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1034,
+ "src": "4934:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1366,
+ "name": "IFactory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2124,
+ "src": "4925:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IFactory_$2124_$",
+ "typeString": "type(contract IFactory)"
+ }
+ },
+ "id": 1368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4925:24:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IFactory_$2124",
+ "typeString": "contract IFactory"
+ }
+ },
+ "id": 1369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4950:13:6",
+ "memberName": "getTokenPairs",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2114,
+ "src": "4925:38:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_address_$",
+ "typeString": "function (address,address) external returns (address)"
+ }
+ },
+ "id": 1376,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4925:56:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4910:71:6"
+ },
+ {
+ "expression": {
+ "id": 1384,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1378,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "4994:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "id": 1380,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5018:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1381,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1352,
+ "src": "5024:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1382,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5034:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ ],
+ "id": 1379,
+ "name": "getAmountsOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1536,
+ "src": "5004:13:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (address,uint256,address[] memory) view returns (uint256[] memory)"
+ }
+ },
+ "id": 1383,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5004:35:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "src": "4994:45:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1385,
+ "nodeType": "ExpressionStatement",
+ "src": "4994:45:6"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "baseExpression": {
+ "id": 1386,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5054:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1391,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1390,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1387,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5062:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1388,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5070:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5062:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1389,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5079:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "5062:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5054:27:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1392,
+ "name": "amountOutMin",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1354,
+ "src": "5084:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5054:42:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1397,
+ "nodeType": "IfStatement",
+ "src": "5050:113:6",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1394,
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1030,
+ "src": "5118:43:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5118:45:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1396,
+ "nodeType": "RevertStatement",
+ "src": "5111:52:6"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1404,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "5205:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1405,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5209:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "5205:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1406,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5217:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "baseExpression": {
+ "id": 1407,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5223:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1409,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1408,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5231:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5223:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1399,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5183:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ "id": 1401,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1400,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5188:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "5183:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1398,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "5176:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1402,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5176:15:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1403,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5192:12:6",
+ "memberName": "transferFrom",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 728,
+ "src": "5176:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5176:58:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1411,
+ "nodeType": "ExpressionStatement",
+ "src": "5176:58:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1413,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1362,
+ "src": "5251:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ {
+ "id": 1414,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1357,
+ "src": "5260:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ }
+ },
+ {
+ "id": 1415,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1365,
+ "src": "5266:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "expression": {
+ "id": 1416,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "5272:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1417,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5276:6:6",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "5272:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ },
+ {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[] calldata"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1412,
+ "name": "_swap",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1350,
+ "src": "5245:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$_t_address_$returns$__$",
+ "typeString": "function (uint256[] memory,address[] memory,address,address)"
+ }
+ },
+ "id": 1418,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5245:38:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1419,
+ "nodeType": "ExpressionStatement",
+ "src": "5245:38:6"
+ }
+ ]
+ },
+ "functionSelector": "86818f26",
+ "id": 1421,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swapExactTokensForTokens",
+ "nameLocation": "4664:24:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1358,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1352,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "4704:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4699:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1351,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4699:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1354,
+ "mutability": "mutable",
+ "name": "amountOutMin",
+ "nameLocation": "4728:12:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4723:17:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1353,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4723:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1357,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "4770:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4751:23:6",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1355,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4751:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1356,
+ "nodeType": "ArrayTypeName",
+ "src": "4751:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4688:93:6"
+ },
+ "returnParameters": {
+ "id": 1363,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1362,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "4875:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1421,
+ "src": "4861:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1360,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "4861:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1361,
+ "nodeType": "ArrayTypeName",
+ "src": "4861:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4817:76:6"
+ },
+ "scope": 1537,
+ "src": "4655:636:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1459,
+ "nodeType": "Block",
+ "src": "5429:265:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1433,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1423,
+ "src": "5448:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5458:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5448:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e69737761705632446566694c6962726172793a20494e53554646494349454e545f414d4f554e54",
+ "id": 1436,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5461:43:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\""
+ },
+ "value": "UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "typeString": "literal_string \"UniswapV2DefiLibrary: INSUFFICIENT_AMOUNT\""
+ }
+ ],
+ "id": 1432,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5440:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1437,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5440:65:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1438,
+ "nodeType": "ExpressionStatement",
+ "src": "5440:65:6"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1442,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1440,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1425,
+ "src": "5538:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1441,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5549:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5538:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1445,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1443,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1427,
+ "src": "5554:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1444,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5565:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "5554:12:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "5538:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459",
+ "id": 1447,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5581:42:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ }
+ ],
+ "id": 1439,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5516:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1448,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5516:118:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1449,
+ "nodeType": "ExpressionStatement",
+ "src": "5516:118:6"
+ },
+ {
+ "expression": {
+ "id": 1457,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1450,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1430,
+ "src": "5645:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1456,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1453,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1451,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1423,
+ "src": "5656:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1452,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1427,
+ "src": "5666:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5656:18:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1454,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "5655:20:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1455,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1425,
+ "src": "5678:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5655:31:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "5645:41:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1458,
+ "nodeType": "ExpressionStatement",
+ "src": "5645:41:6"
+ }
+ ]
+ },
+ "id": 1460,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "quote",
+ "nameLocation": "5308:5:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1428,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1423,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "5329:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5324:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1422,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5324:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1425,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "5352:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5347:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1424,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5347:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1427,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "5376:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5371:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1426,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5371:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5313:78:6"
+ },
+ "returnParameters": {
+ "id": 1431,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1430,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "5420:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1460,
+ "src": "5415:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1429,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5415:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5414:14:6"
+ },
+ "scope": 1537,
+ "src": "5299:395:6",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1535,
+ "nodeType": "Block",
+ "src": "5923:453:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1474,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "5942:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "5947:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "5942:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">=",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5957:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "5942:16:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448",
+ "id": 1478,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5960:32:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\""
+ },
+ "value": "UniswapV2Library: INVALID_PATH"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "typeString": "literal_string \"UniswapV2Library: INVALID_PATH\""
+ }
+ ],
+ "id": 1473,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "5934:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 1479,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5934:59:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1480,
+ "nodeType": "ExpressionStatement",
+ "src": "5934:59:6"
+ },
+ {
+ "expression": {
+ "id": 1488,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1481,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6004:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "expression": {
+ "id": 1485,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "6025:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1486,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6030:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6025:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "NewExpression",
+ "src": "6014:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
+ "typeString": "function (uint256) pure returns (uint256[] memory)"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1482,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6018:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1483,
+ "nodeType": "ArrayTypeName",
+ "src": "6018:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ }
+ },
+ "id": 1487,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6014:23:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "src": "6004:33:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1489,
+ "nodeType": "ExpressionStatement",
+ "src": "6004:33:6"
+ },
+ {
+ "expression": {
+ "id": 1494,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1490,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6048:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1492,
+ "indexExpression": {
+ "hexValue": "30",
+ "id": 1491,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6056:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6048:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1493,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1464,
+ "src": "6061:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6048:21:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1495,
+ "nodeType": "ExpressionStatement",
+ "src": "6048:21:6"
+ },
+ {
+ "body": {
+ "id": 1533,
+ "nodeType": "Block",
+ "src": "6119:250:6",
+ "statements": [
+ {
+ "assignments": [
+ 1509,
+ 1511
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1509,
+ "mutability": "mutable",
+ "name": "reserveIn",
+ "nameLocation": "6140:9:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1533,
+ "src": "6135:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1508,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6135:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1511,
+ "mutability": "mutable",
+ "name": "reserveOut",
+ "nameLocation": "6156:10:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1533,
+ "src": "6151:15:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1510,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6151:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1517,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1513,
+ "name": "pair",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1462,
+ "src": "6176:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1512,
+ "name": "IPool",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2166,
+ "src": "6170:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IPool_$2166_$",
+ "typeString": "type(contract IPool)"
+ }
+ },
+ "id": 1514,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6170:11:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IPool_$2166",
+ "typeString": "contract IPool"
+ }
+ },
+ "id": 1515,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6182:16:6",
+ "memberName": "getTokenReserves",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2156,
+ "src": "6170:28:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view external returns (uint256,uint256)"
+ }
+ },
+ "id": 1516,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6170:30:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6134:66:6"
+ },
+ {
+ "expression": {
+ "id": 1531,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 1518,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6215:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1522,
+ "indexExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1519,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6223:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1520,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6227:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6223:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6215:14:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "baseExpression": {
+ "id": 1525,
+ "name": "amounts",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1471,
+ "src": "6275:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[] memory"
+ }
+ },
+ "id": 1527,
+ "indexExpression": {
+ "id": 1526,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6283:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6275:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1528,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1509,
+ "src": "6304:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1529,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1511,
+ "src": "6332:10:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1523,
+ "name": "DefiLibrary",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2295,
+ "src": "6232:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_DefiLibrary_$2295_$",
+ "typeString": "type(library DefiLibrary)"
+ }
+ },
+ "id": 1524,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6244:12:6",
+ "memberName": "getAmountOut",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 2294,
+ "src": "6232:24:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1530,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6232:125:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6215:142:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1532,
+ "nodeType": "ExpressionStatement",
+ "src": "6215:142:6"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1499,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6093:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "expression": {
+ "id": 1500,
+ "name": "path",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1467,
+ "src": "6097:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[] memory"
+ }
+ },
+ "id": 1501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "6102:6:6",
+ "memberName": "length",
+ "nodeType": "MemberAccess",
+ "src": "6097:11:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6111:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "6097:15:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6093:19:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1534,
+ "initializationExpression": {
+ "assignments": [
+ 1497
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1497,
+ "mutability": "mutable",
+ "name": "i",
+ "nameLocation": "6090:1:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1534,
+ "src": "6085:6:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1496,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "6085:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1498,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6085:6:6"
+ },
+ "loopExpression": {
+ "expression": {
+ "id": 1506,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "UnaryOperation",
+ "operator": "++",
+ "prefix": false,
+ "src": "6114:3:6",
+ "subExpression": {
+ "id": 1505,
+ "name": "i",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1497,
+ "src": "6114:1:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1507,
+ "nodeType": "ExpressionStatement",
+ "src": "6114:3:6"
+ },
+ "nodeType": "ForStatement",
+ "src": "6080:289:6"
+ }
+ ]
+ },
+ "functionSelector": "bb7b9c76",
+ "id": 1536,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getAmountsOut",
+ "nameLocation": "5779:13:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1468,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1462,
+ "mutability": "mutable",
+ "name": "pair",
+ "nameLocation": "5811:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5803:12:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1461,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5803:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1464,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "5831:8:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5826:13:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1463,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5826:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1467,
+ "mutability": "mutable",
+ "name": "path",
+ "nameLocation": "5867:4:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5850:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
+ "typeString": "address[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1465,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5850:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1466,
+ "nodeType": "ArrayTypeName",
+ "src": "5850:9:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
+ "typeString": "address[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5792:86:6"
+ },
+ "returnParameters": {
+ "id": 1472,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1471,
+ "mutability": "mutable",
+ "name": "amounts",
+ "nameLocation": "5914:7:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 1536,
+ "src": "5900:21:6",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
+ "typeString": "uint256[]"
+ },
+ "typeName": {
+ "baseType": {
+ "id": 1469,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "5900:4:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1470,
+ "nodeType": "ArrayTypeName",
+ "src": "5900:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
+ "typeString": "uint256[]"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5899:23:6"
+ },
+ "scope": 1537,
+ "src": "5770:606:6",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 1538,
+ "src": "471:5908:6",
+ "usedErrors": [
+ 1028,
+ 1030,
+ 2190,
+ 2192
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:6346:6"
+ },
+ "id": 6
+ },
+ "contracts/core/Math.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Math.sol",
+ "exportedSymbols": {
+ "Math": [
+ 1613
+ ]
+ },
+ "id": 1614,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1539,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:7"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "Math",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 1613,
+ "linearizedBaseContracts": [
+ 1613
+ ],
+ "name": "Math",
+ "nameLocation": "123:4:7",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 1557,
+ "nodeType": "Block",
+ "src": "195:36:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1555,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1548,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1546,
+ "src": "206:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1551,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1549,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1541,
+ "src": "210:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1550,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1543,
+ "src": "214:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "210:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "id": 1553,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1543,
+ "src": "222:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1554,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "210:13:7",
+ "trueExpression": {
+ "id": 1552,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1541,
+ "src": "218:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "206:17:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1556,
+ "nodeType": "ExpressionStatement",
+ "src": "206:17:7"
+ }
+ ]
+ },
+ "id": 1558,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "min",
+ "nameLocation": "144:3:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1544,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1541,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "153:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "148:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1540,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "148:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1543,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "161:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "156:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1542,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "156:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "147:16:7"
+ },
+ "returnParameters": {
+ "id": 1547,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1546,
+ "mutability": "mutable",
+ "name": "z",
+ "nameLocation": "192:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1558,
+ "src": "187:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1545,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "187:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "186:8:7"
+ },
+ "scope": 1613,
+ "src": "135:96:7",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 1611,
+ "nodeType": "Block",
+ "src": "402:250:7",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1567,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1565,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "417:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 1566,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "421:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "417:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1603,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1601,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "605:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1602,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "610:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "605:6:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1609,
+ "nodeType": "IfStatement",
+ "src": "601:44:7",
+ "trueBody": {
+ "id": 1608,
+ "nodeType": "Block",
+ "src": "613:32:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1606,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1604,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "628:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "hexValue": "31",
+ "id": 1605,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "632:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "628:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1607,
+ "nodeType": "ExpressionStatement",
+ "src": "628:5:7"
+ }
+ ]
+ }
+ },
+ "id": 1610,
+ "nodeType": "IfStatement",
+ "src": "413:232:7",
+ "trueBody": {
+ "id": 1600,
+ "nodeType": "Block",
+ "src": "424:171:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1570,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1568,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "439:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1569,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "443:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "439:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1571,
+ "nodeType": "ExpressionStatement",
+ "src": "439:5:7"
+ },
+ {
+ "assignments": [
+ 1573
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1573,
+ "mutability": "mutable",
+ "name": "x",
+ "nameLocation": "464:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1600,
+ "src": "459:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1572,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "459:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1579,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1576,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1574,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "468:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1575,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "472:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "468:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "hexValue": "31",
+ "id": 1577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "476:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ },
+ "src": "468:9:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "459:18:7"
+ },
+ {
+ "body": {
+ "id": 1598,
+ "nodeType": "Block",
+ "src": "506:78:7",
+ "statements": [
+ {
+ "expression": {
+ "id": 1585,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1583,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "525:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1584,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "529:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "525:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1586,
+ "nodeType": "ExpressionStatement",
+ "src": "525:5:7"
+ },
+ {
+ "expression": {
+ "id": 1596,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1587,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "549:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1595,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1592,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1588,
+ "name": "y",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1560,
+ "src": "554:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1589,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "558:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "554:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "id": 1591,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "562:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "554:9:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1593,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "553:11:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "hexValue": "32",
+ "id": 1594,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "567:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_2_by_1",
+ "typeString": "int_const 2"
+ },
+ "value": "2"
+ },
+ "src": "553:15:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "549:19:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1597,
+ "nodeType": "ExpressionStatement",
+ "src": "549:19:7"
+ }
+ ]
+ },
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1582,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1580,
+ "name": "x",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1573,
+ "src": "499:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 1581,
+ "name": "z",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1563,
+ "src": "503:1:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "499:5:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1599,
+ "nodeType": "WhileStatement",
+ "src": "492:92:7"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "id": 1612,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sqrt",
+ "nameLocation": "358:4:7",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1561,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1560,
+ "mutability": "mutable",
+ "name": "y",
+ "nameLocation": "368:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1612,
+ "src": "363:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1559,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "363:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "362:8:7"
+ },
+ "returnParameters": {
+ "id": 1564,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1563,
+ "mutability": "mutable",
+ "name": "z",
+ "nameLocation": "399:1:7",
+ "nodeType": "VariableDeclaration",
+ "scope": 1612,
+ "src": "394:6:7",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1562,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "394:4:7",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "393:8:7"
+ },
+ "scope": 1613,
+ "src": "349:303:7",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 1614,
+ "src": "115:540:7",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:622:7"
+ },
+ "id": 7
+ },
+ "contracts/core/Pool.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/Pool.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "Math": [
+ 1613
+ ],
+ "Pool": [
+ 2103
+ ],
+ "PoolFactory__InsufficientFunds": [
+ 1624
+ ],
+ "PoolFactory__InsufficientLiquidity": [
+ 1622
+ ],
+ "PoolFactory__NotOwner": [
+ 1620
+ ]
+ },
+ "id": 2104,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1615,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:8"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 1616,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 652,
+ "src": "60:55:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "id": 1617,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 730,
+ "src": "117:56:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "contracts/core/Math.sol",
+ "file": "./Math.sol",
+ "id": 1618,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2104,
+ "sourceUnit": 1614,
+ "src": "175:20:8",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "errorSelector": "0c18a1fc",
+ "id": 1620,
+ "name": "PoolFactory__NotOwner",
+ "nameLocation": "205:21:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1619,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "226:2:8"
+ },
+ "src": "199:30:8"
+ },
+ {
+ "errorSelector": "24217e51",
+ "id": 1622,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nameLocation": "237:34:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1621,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "271:2:8"
+ },
+ "src": "231:43:8"
+ },
+ {
+ "errorSelector": "5d125c46",
+ "id": 1624,
+ "name": "PoolFactory__InsufficientFunds",
+ "nameLocation": "282:30:8",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 1623,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "312:2:8"
+ },
+ "src": "276:39:8"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 1625,
+ "name": "ERC20",
+ "nameLocations": [
+ "336:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "336:5:8"
+ },
+ "id": 1626,
+ "nodeType": "InheritanceSpecifier",
+ "src": "336:5:8"
+ }
+ ],
+ "canonicalName": "Pool",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2103,
+ "linearizedBaseContracts": [
+ 2103,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "Pool",
+ "nameLocation": "328:4:8",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "global": false,
+ "id": 1629,
+ "libraryName": {
+ "id": 1627,
+ "name": "Math",
+ "nameLocations": [
+ "355:4:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 1613,
+ "src": "355:4:8"
+ },
+ "nodeType": "UsingForDirective",
+ "src": "349:23:8",
+ "typeName": {
+ "id": 1628,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "364:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ {
+ "constant": false,
+ "id": 1631,
+ "mutability": "immutable",
+ "name": "factory",
+ "nameLocation": "406:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "380:33:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1630,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "380:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1633,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "436:6:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "420:22:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1632,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "420:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1635,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "465:6:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "449:22:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1634,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "449:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": true,
+ "functionSelector": "ba9a7a56",
+ "id": 1640,
+ "mutability": "constant",
+ "name": "MINIMUM_LIQUIDITY",
+ "nameLocation": "504:17:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "480:51:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1636,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "480:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "value": {
+ "commonType": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "id": 1639,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "leftExpression": {
+ "hexValue": "3130",
+ "id": 1637,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "524:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_10_by_1",
+ "typeString": "int_const 10"
+ },
+ "value": "10"
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "**",
+ "rightExpression": {
+ "hexValue": "33",
+ "id": 1638,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "530:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_3_by_1",
+ "typeString": "int_const 3"
+ },
+ "value": "3"
+ },
+ "src": "524:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ }
+ },
+ "visibility": "public"
+ },
+ {
+ "constant": false,
+ "id": 1642,
+ "mutability": "mutable",
+ "name": "reserveA",
+ "nameLocation": "556:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "540:24:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1641,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1644,
+ "mutability": "mutable",
+ "name": "reserveB",
+ "nameLocation": "587:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "571:24:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1643,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "571:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 1646,
+ "mutability": "mutable",
+ "name": "totalLpShares",
+ "nameLocation": "620:13:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2103,
+ "src": "604:29:8",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1645,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "604:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1658,
+ "nodeType": "Block",
+ "src": "687:39:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1656,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1653,
+ "name": "factory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1631,
+ "src": "698:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "expression": {
+ "id": 1654,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "708:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1655,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "712:6:8",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "708:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "698:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1657,
+ "nodeType": "ExpressionStatement",
+ "src": "698:20:8"
+ }
+ ]
+ },
+ "id": 1659,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4c6971756964697479546f6b656e73",
+ "id": 1649,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "662:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_a1c06a542755520496b904f46cb44ce33f6951aefe9bbc8974631708049326d0",
+ "typeString": "literal_string \"LiquidityTokens\""
+ },
+ "value": "LiquidityTokens"
+ },
+ {
+ "hexValue": "4c50",
+ "id": 1650,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "681:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9c21acbd49d77f161dc74d87db3b4adb975d116ec37505d4dd76e89d2844ede3",
+ "typeString": "literal_string \"LP\""
+ },
+ "value": "LP"
+ }
+ ],
+ "id": 1651,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 1648,
+ "name": "ERC20",
+ "nameLocations": [
+ "656:5:8"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "656:5:8"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "656:30:8"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1647,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "653:2:8"
+ },
+ "returnParameters": {
+ "id": 1652,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "687:0:8"
+ },
+ "scope": 2103,
+ "src": "642:84:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 1682,
+ "nodeType": "Block",
+ "src": "791:132:8",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 1669,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1666,
+ "name": "factory",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1631,
+ "src": "806:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "id": 1667,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "817:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 1668,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "821:6:8",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "817:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "806:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1673,
+ "nodeType": "IfStatement",
+ "src": "802:57:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1670,
+ "name": "PoolFactory__NotOwner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1620,
+ "src": "836:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1671,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "836:23:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1672,
+ "nodeType": "RevertStatement",
+ "src": "829:30:8"
+ }
+ },
+ {
+ "expression": {
+ "id": 1676,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1674,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "872:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1675,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1661,
+ "src": "881:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "872:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1677,
+ "nodeType": "ExpressionStatement",
+ "src": "872:16:8"
+ },
+ {
+ "expression": {
+ "id": 1680,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1678,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "899:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1679,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1663,
+ "src": "908:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "899:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "id": 1681,
+ "nodeType": "ExpressionStatement",
+ "src": "899:16:8"
+ }
+ ]
+ },
+ "functionSelector": "f09a4016",
+ "id": 1683,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "init",
+ "nameLocation": "743:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1664,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1661,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "756:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1683,
+ "src": "748:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1660,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "748:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1663,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "773:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1683,
+ "src": "765:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1662,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "765:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "747:34:8"
+ },
+ "returnParameters": {
+ "id": 1665,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "791:0:8"
+ },
+ "scope": 2103,
+ "src": "734:189:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1698,
+ "nodeType": "Block",
+ "src": "994:70:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1692,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1690,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1642,
+ "src": "1005:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1691,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1685,
+ "src": "1016:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1005:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1693,
+ "nodeType": "ExpressionStatement",
+ "src": "1005:20:8"
+ },
+ {
+ "expression": {
+ "id": 1696,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1694,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1644,
+ "src": "1036:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 1695,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1687,
+ "src": "1047:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1036:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1697,
+ "nodeType": "ExpressionStatement",
+ "src": "1036:20:8"
+ }
+ ]
+ },
+ "id": 1699,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_update",
+ "nameLocation": "940:7:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1688,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1685,
+ "mutability": "mutable",
+ "name": "_balanceA",
+ "nameLocation": "956:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1699,
+ "src": "948:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1684,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "948:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1687,
+ "mutability": "mutable",
+ "name": "_balanceB",
+ "nameLocation": "975:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1699,
+ "src": "967:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1686,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "967:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "947:38:8"
+ },
+ "returnParameters": {
+ "id": 1689,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "994:0:8"
+ },
+ "scope": 2103,
+ "src": "931:133:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 1815,
+ "nodeType": "Block",
+ "src": "1136:1104:8",
+ "statements": [
+ {
+ "assignments": [
+ 1707,
+ 1709
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1707,
+ "mutability": "mutable",
+ "name": "_reserveA",
+ "nameLocation": "1156:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1148:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1706,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1148:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1709,
+ "mutability": "mutable",
+ "name": "_reserveB",
+ "nameLocation": "1175:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1167:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1708,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1167:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1712,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1710,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "1188:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1711,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1188:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1147:59:8"
+ },
+ {
+ "assignments": [
+ 1714
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1714,
+ "mutability": "mutable",
+ "name": "_balanceA",
+ "nameLocation": "1225:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1217:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1713,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1217:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1724,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1721,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "1270:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1720,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1262:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1719,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1262:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1722,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1262:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1716,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "1244:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1715,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "1237:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1717,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1718,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1252:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "1237:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1723,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1237:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1217:59:8"
+ },
+ {
+ "assignments": [
+ 1726
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1726,
+ "mutability": "mutable",
+ "name": "_balanceB",
+ "nameLocation": "1295:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1287:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1725,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1287:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1736,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1733,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "1340:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1732,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1332:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1731,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1332:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1734,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1332:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1728,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "1314:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1727,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "1307:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1729,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1307:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1730,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1322:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "1307:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1735,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1307:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1287:59:8"
+ },
+ {
+ "assignments": [
+ 1738
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1738,
+ "mutability": "mutable",
+ "name": "depositOfTokenA",
+ "nameLocation": "1365:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1357:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1737,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1357:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1742,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1741,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1739,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1714,
+ "src": "1383:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 1740,
+ "name": "_reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1707,
+ "src": "1395:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1383:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1357:47:8"
+ },
+ {
+ "assignments": [
+ 1744
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1744,
+ "mutability": "mutable",
+ "name": "depositOfTokenB",
+ "nameLocation": "1423:15:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1415:23:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1743,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1415:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1748,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1747,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1745,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1726,
+ "src": "1441:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 1746,
+ "name": "_reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1709,
+ "src": "1453:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1441:21:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1415:47:8"
+ },
+ {
+ "assignments": [
+ 1750
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1750,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "1483:12:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1815,
+ "src": "1475:20:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1749,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1475:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1753,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1751,
+ "name": "totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 224,
+ "src": "1498:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
+ "typeString": "function () view returns (uint256)"
+ }
+ },
+ "id": 1752,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1498:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1475:36:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1756,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1754,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1526:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1755,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1542:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1526:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 1796,
+ "nodeType": "Block",
+ "src": "1828:188:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1778,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "1843:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1786,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1783,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1781,
+ "name": "depositOfTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1738,
+ "src": "1883:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1782,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1901:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1883:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1784,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1882:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1785,
+ "name": "_reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1707,
+ "src": "1917:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1882:44:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1792,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1789,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1787,
+ "name": "depositOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "1946:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1788,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1750,
+ "src": "1964:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1946:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1790,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1945:32:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1791,
+ "name": "_reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1709,
+ "src": "1980:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1945:44:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1779,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1613,
+ "src": "1855:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$1613_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 1780,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1860:3:8",
+ "memberName": "min",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1558,
+ "src": "1855:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256,uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1855:149:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1843:161:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1795,
+ "nodeType": "ExpressionStatement",
+ "src": "1843:161:8"
+ }
+ ]
+ },
+ "id": 1797,
+ "nodeType": "IfStatement",
+ "src": "1522:494:8",
+ "trueBody": {
+ "id": 1777,
+ "nodeType": "Block",
+ "src": "1545:277:8",
+ "statements": [
+ {
+ "expression": {
+ "id": 1767,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1757,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "1560:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1766,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1762,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1760,
+ "name": "depositOfTokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1738,
+ "src": "1599:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1761,
+ "name": "depositOfTokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1744,
+ "src": "1617:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1599:33:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "id": 1758,
+ "name": "Math",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1613,
+ "src": "1589:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_Math_$1613_$",
+ "typeString": "type(library Math)"
+ }
+ },
+ "id": 1759,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "1594:4:8",
+ "memberName": "sqrt",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 1612,
+ "src": "1589:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
+ "typeString": "function (uint256) pure returns (uint256)"
+ }
+ },
+ "id": 1763,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1589:44:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "components": [
+ {
+ "id": 1764,
+ "name": "MINIMUM_LIQUIDITY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1640,
+ "src": "1654:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1765,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1653:19:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1589:83:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1560:112:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1768,
+ "nodeType": "ExpressionStatement",
+ "src": "1560:112:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "31",
+ "id": 1772,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1701:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ },
+ "value": "1"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_1_by_1",
+ "typeString": "int_const 1"
+ }
+ ],
+ "id": 1771,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "1693:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1770,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1693:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1693:10:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1774,
+ "name": "MINIMUM_LIQUIDITY",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1640,
+ "src": "1705:17:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1769,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "1687:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1775,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1687:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1776,
+ "nodeType": "ExpressionStatement",
+ "src": "1687:36:8"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1800,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1798,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "2030:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1799,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2043:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "2030:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1804,
+ "nodeType": "IfStatement",
+ "src": "2026:63:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1801,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "2053:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1802,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2053:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1803,
+ "nodeType": "RevertStatement",
+ "src": "2046:43:8"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1806,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1701,
+ "src": "2106:3:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1807,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1704,
+ "src": "2111:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1805,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "2100:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2100:21:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1809,
+ "nodeType": "ExpressionStatement",
+ "src": "2100:21:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1811,
+ "name": "_balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1714,
+ "src": "2140:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1812,
+ "name": "_balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1726,
+ "src": "2151:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1810,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "2132:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 1813,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2132:29:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1814,
+ "nodeType": "ExpressionStatement",
+ "src": "2132:29:8"
+ }
+ ]
+ },
+ "functionSelector": "6a627842",
+ "id": 1816,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "1081:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1701,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "1094:3:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1816,
+ "src": "1086:11:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1700,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1086:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1085:13:8"
+ },
+ "returnParameters": {
+ "id": 1705,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1704,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "1125:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1816,
+ "src": "1117:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1117:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1116:19:8"
+ },
+ "scope": 2103,
+ "src": "1072:1168:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 1957,
+ "nodeType": "Block",
+ "src": "2368:1169:8",
+ "statements": [
+ {
+ "assignments": [
+ 1826,
+ 1828
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1826,
+ "mutability": "mutable",
+ "name": "_reserve0",
+ "nameLocation": "2388:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2380:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1825,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2380:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1828,
+ "mutability": "mutable",
+ "name": "_reserve1",
+ "nameLocation": "2407:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2399:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1827,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2399:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1831,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1829,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "2420:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1830,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2420:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2379:59:8"
+ },
+ {
+ "assignments": [
+ 1833
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1833,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "2472:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2464:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1832,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2464:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1835,
+ "initialValue": {
+ "id": 1834,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "2482:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2464:24:8"
+ },
+ {
+ "assignments": [
+ 1837
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1837,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "2522:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2514:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1836,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2514:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1839,
+ "initialValue": {
+ "id": 1838,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "2532:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2514:24:8"
+ },
+ {
+ "assignments": [
+ 1841
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1841,
+ "mutability": "mutable",
+ "name": "balanceA",
+ "nameLocation": "2569:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2564:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1840,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2564:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1851,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1848,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "2614:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1847,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2606:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1846,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2606:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1849,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2606:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1843,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "2587:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1842,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "2580:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1844,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2580:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1845,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2596:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "2580:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1850,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2580:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2564:56:8"
+ },
+ {
+ "assignments": [
+ 1853
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1853,
+ "mutability": "mutable",
+ "name": "balanceB",
+ "nameLocation": "2636:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2631:13:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1852,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2631:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1863,
+ "initialValue": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1860,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "2681:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1859,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "2673:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1858,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2673:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1861,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2673:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1855,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "2654:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1854,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "2647:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1856,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2647:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1857,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "2663:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "2647:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1862,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2647:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2631:56:8"
+ },
+ {
+ "assignments": [
+ 1865
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1865,
+ "mutability": "mutable",
+ "name": "liquidity",
+ "nameLocation": "2703:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2698:14:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1864,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "2698:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1869,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 1867,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "2725:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1866,
+ "name": "balanceOf",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 237,
+ "src": "2715:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view returns (uint256)"
+ }
+ },
+ "id": 1868,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2715:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2698:30:8"
+ },
+ {
+ "assignments": [
+ 1871
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1871,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "2749:12:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1957,
+ "src": "2741:20:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1870,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2741:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1874,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1872,
+ "name": "totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 224,
+ "src": "2764:11:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
+ "typeString": "function () view returns (uint256)"
+ }
+ },
+ "id": 1873,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "2764:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "2741:36:8"
+ },
+ {
+ "expression": {
+ "id": 1882,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1875,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "2866:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1881,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1878,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1876,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "2877:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1877,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "2889:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2877:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1879,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2876:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1880,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1871,
+ "src": "2901:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2876:37:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2866:47:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1883,
+ "nodeType": "ExpressionStatement",
+ "src": "2866:47:8"
+ },
+ {
+ "expression": {
+ "id": 1891,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1884,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "2972:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1890,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1887,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1885,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "2983:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 1886,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "2995:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2983:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 1888,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "2982:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 1889,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1871,
+ "src": "3007:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2982:37:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "2972:47:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1892,
+ "nodeType": "ExpressionStatement",
+ "src": "2972:47:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1899,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1895,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1893,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "3082:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1894,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3093:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3082:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1898,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1896,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "3098:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1897,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3109:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3098:12:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3082:28:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1903,
+ "nodeType": "IfStatement",
+ "src": "3078:90:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1900,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "3132:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1901,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3132:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1902,
+ "nodeType": "RevertStatement",
+ "src": "3125:43:8"
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1907,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3193:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1906,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3185:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1905,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3185:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1908,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3185:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1909,
+ "name": "liquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1865,
+ "src": "3200:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1904,
+ "name": "_burn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 524,
+ "src": "3179:5:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 1910,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3179:31:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1911,
+ "nodeType": "ExpressionStatement",
+ "src": "3179:31:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1916,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "3246:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1917,
+ "name": "amountA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1821,
+ "src": "3250:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1913,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "3228:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1912,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3221:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1914,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3221:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1915,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3237:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "3221:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1918,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3221:37:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1919,
+ "nodeType": "ExpressionStatement",
+ "src": "3221:37:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1924,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1818,
+ "src": "3294:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 1925,
+ "name": "amountB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1823,
+ "src": "3298:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1921,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "3276:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1920,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3269:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1922,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3269:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1923,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3285:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "3269:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 1926,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3269:37:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1927,
+ "nodeType": "ExpressionStatement",
+ "src": "3269:37:8"
+ },
+ {
+ "expression": {
+ "id": 1938,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1928,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "3317:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1935,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3362:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1934,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3354:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1933,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3354:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1936,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3354:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1930,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1833,
+ "src": "3335:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1929,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3328:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1931,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3328:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1932,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3344:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "3328:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1937,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3328:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3317:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1939,
+ "nodeType": "ExpressionStatement",
+ "src": "3317:51:8"
+ },
+ {
+ "expression": {
+ "id": 1950,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 1940,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "3379:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 1947,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "3424:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 1946,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "3416:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 1945,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3416:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 1948,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3416:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 1942,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1837,
+ "src": "3397:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 1941,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "3390:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 1943,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3390:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 1944,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "3406:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "3390:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 1949,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3390:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3379:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 1951,
+ "nodeType": "ExpressionStatement",
+ "src": "3379:51:8"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 1953,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1841,
+ "src": "3451:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 1954,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1853,
+ "src": "3461:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 1952,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "3443:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 1955,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3443:27:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1956,
+ "nodeType": "ExpressionStatement",
+ "src": "3443:27:8"
+ }
+ ]
+ },
+ "functionSelector": "74a0f94b",
+ "id": 1958,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "liquidateLpTokens",
+ "nameLocation": "2270:17:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1819,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1818,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "2306:2:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2298:10:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1817,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2298:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2287:28:8"
+ },
+ "returnParameters": {
+ "id": 1824,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1821,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "2342:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2334:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1820,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2334:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1823,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "2359:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 1958,
+ "src": "2351:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1822,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2351:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2333:34:8"
+ },
+ "scope": 2103,
+ "src": "2261:1276:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2064,
+ "nodeType": "Block",
+ "src": "3680:778:8",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1973,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1969,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1967,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "3695:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1968,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3709:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3695:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1972,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1970,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "3714:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<=",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 1971,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3728:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "3714:15:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3695:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1977,
+ "nodeType": "IfStatement",
+ "src": "3691:92:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1974,
+ "name": "PoolFactory__InsufficientFunds",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1624,
+ "src": "3751:30:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1975,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3751:32:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1976,
+ "nodeType": "RevertStatement",
+ "src": "3744:39:8"
+ }
+ },
+ {
+ "assignments": [
+ 1979,
+ 1981
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1979,
+ "mutability": "mutable",
+ "name": "_reserve0",
+ "nameLocation": "3803:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3795:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1978,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3795:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1981,
+ "mutability": "mutable",
+ "name": "_reserve1",
+ "nameLocation": "3822:9:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3814:17:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1980,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3814:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1984,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1982,
+ "name": "getTokenReserves",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2077,
+ "src": "3835:16:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$_t_uint256_$",
+ "typeString": "function () view returns (uint256,uint256)"
+ }
+ },
+ "id": 1983,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3835:18:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3794:59:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 1991,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1987,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1985,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "3868:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 1986,
+ "name": "_reserve0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1979,
+ "src": "3881:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3868:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "||",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 1990,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 1988,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "3894:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "id": 1989,
+ "name": "_reserve1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1981,
+ "src": "3907:9:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "3894:22:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "3868:48:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 1995,
+ "nodeType": "IfStatement",
+ "src": "3864:110:8",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 1992,
+ "name": "PoolFactory__InsufficientLiquidity",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1622,
+ "src": "3938:34:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 1993,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3938:36:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 1994,
+ "nodeType": "RevertStatement",
+ "src": "3931:43:8"
+ }
+ },
+ {
+ "assignments": [
+ 1997
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 1997,
+ "mutability": "mutable",
+ "name": "balanceA",
+ "nameLocation": "3993:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "3985:16:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1996,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3985:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 1998,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3985:16:8"
+ },
+ {
+ "assignments": [
+ 2000
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2000,
+ "mutability": "mutable",
+ "name": "balanceB",
+ "nameLocation": "4020:8:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2064,
+ "src": "4012:16:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1999,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4012:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2001,
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4012:16:8"
+ },
+ {
+ "id": 2058,
+ "nodeType": "Block",
+ "src": "4039:372:8",
+ "statements": [
+ {
+ "assignments": [
+ 2003
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2003,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "4062:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2058,
+ "src": "4054:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2002,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4054:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2005,
+ "initialValue": {
+ "id": 2004,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "4072:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4054:24:8"
+ },
+ {
+ "assignments": [
+ 2007
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2007,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "4101:7:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2058,
+ "src": "4093:15:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2006,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4093:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2009,
+ "initialValue": {
+ "id": 2008,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "4111:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4093:24:8"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2012,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2010,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "4136:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2011,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4149:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4136:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2021,
+ "nodeType": "IfStatement",
+ "src": "4132:60:8",
+ "trueBody": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2017,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1964,
+ "src": "4177:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2018,
+ "name": "amount0Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1960,
+ "src": "4181:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2014,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2003,
+ "src": "4159:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2013,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4152:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2015,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4152:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2016,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4168:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "4152:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 2019,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4152:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2020,
+ "nodeType": "ExpressionStatement",
+ "src": "4152:40:8"
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2024,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2022,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4211:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2023,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4224:1:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "4211:14:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2033,
+ "nodeType": "IfStatement",
+ "src": "4207:60:8",
+ "trueBody": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2029,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1964,
+ "src": "4252:2:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2030,
+ "name": "amount1Out",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1962,
+ "src": "4256:10:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2026,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2007,
+ "src": "4234:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2025,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4227:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2027,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4227:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2028,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4243:8:8",
+ "memberName": "transfer",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 696,
+ "src": "4227:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
+ "typeString": "function (address,uint256) external returns (bool)"
+ }
+ },
+ "id": 2031,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4227:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2032,
+ "nodeType": "ExpressionStatement",
+ "src": "4227:40:8"
+ }
+ },
+ {
+ "expression": {
+ "id": 2044,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2034,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1997,
+ "src": "4282:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2041,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4327:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2040,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4319:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2039,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4319:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2042,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4319:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2036,
+ "name": "_tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2003,
+ "src": "4300:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2035,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4293:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2037,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4293:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2038,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4309:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4293:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2043,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4293:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4282:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2045,
+ "nodeType": "ExpressionStatement",
+ "src": "4282:51:8"
+ },
+ {
+ "expression": {
+ "id": 2056,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2046,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2000,
+ "src": "4348:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2053,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4393:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2052,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4385:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2051,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4385:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2054,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4385:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2048,
+ "name": "_tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2007,
+ "src": "4366:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2047,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4359:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2049,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:15:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2050,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4375:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4359:25:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2055,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4359:40:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "4348:51:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2057,
+ "nodeType": "ExpressionStatement",
+ "src": "4348:51:8"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2060,
+ "name": "balanceA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1997,
+ "src": "4431:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2061,
+ "name": "balanceB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2000,
+ "src": "4441:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2059,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "4423:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 2062,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4423:27:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2063,
+ "nodeType": "ExpressionStatement",
+ "src": "4423:27:8"
+ }
+ ]
+ },
+ "functionSelector": "6d9a640a",
+ "id": 2065,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swap",
+ "nameLocation": "3554:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 1965,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 1960,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "3577:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3569:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1959,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3569:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1962,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "3606:10:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3598:18:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 1961,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3598:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 1964,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3635:2:8",
+ "nodeType": "VariableDeclaration",
+ "scope": 2065,
+ "src": "3627:10:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 1963,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3627:7:8",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3558:112:8"
+ },
+ "returnParameters": {
+ "id": 1966,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "3680:0:8"
+ },
+ "scope": 2103,
+ "src": "3545:913:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "body": {
+ "id": 2076,
+ "nodeType": "Block",
+ "src": "4533:46:8",
+ "statements": [
+ {
+ "expression": {
+ "components": [
+ {
+ "id": 2072,
+ "name": "reserveA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1642,
+ "src": "4552:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 2073,
+ "name": "reserveB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1644,
+ "src": "4562:8:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2074,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "4551:20:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
+ "typeString": "tuple(uint256,uint256)"
+ }
+ },
+ "functionReturnParameters": 2071,
+ "id": 2075,
+ "nodeType": "Return",
+ "src": "4544:27:8"
+ }
+ ]
+ },
+ "functionSelector": "b9cf5005",
+ "id": 2077,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenReserves",
+ "nameLocation": "4475:16:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2066,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4491:2:8"
+ },
+ "returnParameters": {
+ "id": 2071,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2068,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2077,
+ "src": "4515:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2067,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4515:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2070,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2077,
+ "src": "4524:7:8",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2069,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4524:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4514:18:8"
+ },
+ "scope": 2103,
+ "src": "4466:113:8",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2101,
+ "nodeType": "Block",
+ "src": "4653:145:8",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2087,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4719:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2086,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4711:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2085,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4711:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2088,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4711:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2082,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1633,
+ "src": "4693:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2081,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4686:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2083,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4686:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2084,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4701:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4686:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2089,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4686:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "id": 2096,
+ "name": "this",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -28,
+ "src": "4773:4:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_contract$_Pool_$2103",
+ "typeString": "contract Pool"
+ }
+ ],
+ "id": 2095,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "4765:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2094,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4765:7:8",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2097,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4765:13:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "id": 2091,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 1635,
+ "src": "4747:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 2090,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "4740:6:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_contract$_IERC20_$729_$",
+ "typeString": "type(contract IERC20)"
+ }
+ },
+ "id": 2092,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4740:14:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_contract$_IERC20_$729",
+ "typeString": "contract IERC20"
+ }
+ },
+ "id": 2093,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "4755:9:8",
+ "memberName": "balanceOf",
+ "nodeType": "MemberAccess",
+ "referencedDeclaration": 686,
+ "src": "4740:24:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address) view external returns (uint256)"
+ }
+ },
+ "id": 2098,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4740:39:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2080,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 1699,
+ 458
+ ],
+ "referencedDeclaration": 1699,
+ "src": "4664:7:8",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (uint256,uint256)"
+ }
+ },
+ "id": 2099,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4664:126:8",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2100,
+ "nodeType": "ExpressionStatement",
+ "src": "4664:126:8"
+ }
+ ]
+ },
+ "functionSelector": "fff6cae9",
+ "id": 2102,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sync",
+ "nameLocation": "4637:4:8",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2078,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4641:2:8"
+ },
+ "returnParameters": {
+ "id": 2079,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "4653:0:8"
+ },
+ "scope": 2103,
+ "src": "4628:170:8",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2104,
+ "src": "319:4482:8",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40,
+ 1620,
+ 1622,
+ 1624
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:4768:8"
+ },
+ "id": 8
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IFactory.sol",
+ "exportedSymbols": {
+ "IFactory": [
+ 2124
+ ]
+ },
+ "id": 2125,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2105,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:9"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IFactory",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2124,
+ "linearizedBaseContracts": [
+ 2124
+ ],
+ "name": "IFactory",
+ "nameLocation": "70:8:9",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "4a70f02e",
+ "id": 2114,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenPairs",
+ "nameLocation": "95:13:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2107,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "127:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "119:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2106,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "119:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2109,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "152:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "144:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2108,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "144:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "108:57:9"
+ },
+ "returnParameters": {
+ "id": 2113,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2112,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2114,
+ "src": "184:7:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2111,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "184:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "183:9:9"
+ },
+ "scope": 2124,
+ "src": "86:107:9",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "e3433615",
+ "id": 2123,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "createPool",
+ "nameLocation": "210:10:9",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2119,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2116,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "239:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "231:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "231:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2118,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "264:6:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "256:14:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2117,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "256:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "220:57:9"
+ },
+ "returnParameters": {
+ "id": 2122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2121,
+ "mutability": "mutable",
+ "name": "poolPair",
+ "nameLocation": "304:8:9",
+ "nodeType": "VariableDeclaration",
+ "scope": 2123,
+ "src": "296:16:9",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2120,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "296:7:9",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "295:18:9"
+ },
+ "scope": 2124,
+ "src": "201:113:9",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2125,
+ "src": "60:257:9",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:284:9"
+ },
+ "id": 9
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IPool.sol",
+ "exportedSymbols": {
+ "IPool": [
+ 2166
+ ]
+ },
+ "id": 2167,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2126,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:10"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IPool",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2166,
+ "linearizedBaseContracts": [
+ 2166
+ ],
+ "name": "IPool",
+ "nameLocation": "70:5:10",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "f09a4016",
+ "id": 2133,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "init",
+ "nameLocation": "189:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2131,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2128,
+ "mutability": "mutable",
+ "name": "_tokenA",
+ "nameLocation": "202:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2133,
+ "src": "194:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2127,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "194:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2130,
+ "mutability": "mutable",
+ "name": "_tokenB",
+ "nameLocation": "219:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2133,
+ "src": "211:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2129,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "211:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "193:34:10"
+ },
+ "returnParameters": {
+ "id": 2132,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "236:0:10"
+ },
+ "scope": 2166,
+ "src": "180:57:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "6a627842",
+ "id": 2140,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "254:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2136,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2135,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "267:3:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2140,
+ "src": "259:11:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2134,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "259:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "258:13:10"
+ },
+ "returnParameters": {
+ "id": 2139,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2138,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2140,
+ "src": "290:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2137,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "290:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "289:9:10"
+ },
+ "scope": 2166,
+ "src": "245:54:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "74a0f94b",
+ "id": 2149,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "liquidateLpTokens",
+ "nameLocation": "316:17:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2143,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2142,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "352:2:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "344:10:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2141,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "344:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "333:28:10"
+ },
+ "returnParameters": {
+ "id": 2148,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2145,
+ "mutability": "mutable",
+ "name": "amountA",
+ "nameLocation": "388:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "380:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2144,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "380:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2147,
+ "mutability": "mutable",
+ "name": "amountB",
+ "nameLocation": "405:7:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2149,
+ "src": "397:15:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2146,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "397:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "379:34:10"
+ },
+ "scope": 2166,
+ "src": "307:107:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "b9cf5005",
+ "id": 2156,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getTokenReserves",
+ "nameLocation": "431:16:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2150,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "447:2:10"
+ },
+ "returnParameters": {
+ "id": 2155,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2152,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2156,
+ "src": "473:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2151,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "473:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2154,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2156,
+ "src": "482:7:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2153,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "482:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "472:18:10"
+ },
+ "scope": 2166,
+ "src": "422:69:10",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "6d9a640a",
+ "id": 2165,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "swap",
+ "nameLocation": "508:4:10",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2163,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2158,
+ "mutability": "mutable",
+ "name": "amount0Out",
+ "nameLocation": "531:10:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "523:18:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "523:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2160,
+ "mutability": "mutable",
+ "name": "amount1Out",
+ "nameLocation": "560:10:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "552:18:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2159,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "552:7:10",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2162,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "589:2:10",
+ "nodeType": "VariableDeclaration",
+ "scope": 2165,
+ "src": "581:10:10",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2161,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "581:7:10",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "512:112:10"
+ },
+ "returnParameters": {
+ "id": 2164,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "633:0:10"
+ },
+ "scope": 2166,
+ "src": "499:135:10",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2167,
+ "src": "60:577:10",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:604:10"
+ },
+ "id": 10
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/interfaces/IWedu.sol",
+ "exportedSymbols": {
+ "IWEDU": [
+ 2186
+ ]
+ },
+ "id": 2187,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2168,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:11"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IWEDU",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "fullyImplemented": false,
+ "id": 2186,
+ "linearizedBaseContracts": [
+ 2186
+ ],
+ "name": "IWEDU",
+ "nameLocation": "70:5:11",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "functionSelector": "d0e30db0",
+ "id": 2171,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "deposit",
+ "nameLocation": "92:7:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2169,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "99:2:11"
+ },
+ "returnParameters": {
+ "id": 2170,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "118:0:11"
+ },
+ "scope": 2186,
+ "src": "83:36:11",
+ "stateMutability": "payable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "a9059cbb",
+ "id": 2180,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "136:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2176,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2173,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "153:2:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "145:10:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2172,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "145:7:11",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2175,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "162:5:11",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "157:10:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2174,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "157:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "144:24:11"
+ },
+ "returnParameters": {
+ "id": 2179,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2178,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2180,
+ "src": "187:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 2177,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "187:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "186:6:11"
+ },
+ "scope": 2186,
+ "src": "127:66:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "functionSelector": "2e1a7d4d",
+ "id": 2185,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "withdraw",
+ "nameLocation": "210:8:11",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2183,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2182,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 2185,
+ "src": "219:4:11",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2181,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "219:4:11",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "218:6:11"
+ },
+ "returnParameters": {
+ "id": 2184,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "233:0:11"
+ },
+ "scope": 2186,
+ "src": "201:33:11",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 2187,
+ "src": "60:177:11",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:204:11"
+ },
+ "id": 11
+ },
+ "contracts/core/libraries/Library.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/libraries/Library.sol",
+ "exportedSymbols": {
+ "DefiLibrary": [
+ 2295
+ ],
+ "PoolFactory__IdenticalAddress": [
+ 2190
+ ],
+ "PoolFactory__ZeroAddress": [
+ 2192
+ ]
+ },
+ "id": 2296,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2188,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".9"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:23:12"
+ },
+ {
+ "errorSelector": "4bea99d9",
+ "id": 2190,
+ "name": "PoolFactory__IdenticalAddress",
+ "nameLocation": "66:29:12",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 2189,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "95:2:12"
+ },
+ "src": "60:38:12"
+ },
+ {
+ "errorSelector": "74b959e9",
+ "id": 2192,
+ "name": "PoolFactory__ZeroAddress",
+ "nameLocation": "106:24:12",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 2191,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "130:2:12"
+ },
+ "src": "100:33:12"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "DefiLibrary",
+ "contractDependencies": [],
+ "contractKind": "library",
+ "fullyImplemented": true,
+ "id": 2295,
+ "linearizedBaseContracts": [
+ 2295
+ ],
+ "name": "DefiLibrary",
+ "nameLocation": "145:11:12",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2235,
+ "nodeType": "Block",
+ "src": "397:341:12",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2205,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2203,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "412:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "id": 2204,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "422:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "412:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2209,
+ "nodeType": "IfStatement",
+ "src": "408:60:12",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 2206,
+ "name": "PoolFactory__IdenticalAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2190,
+ "src": "437:29:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 2207,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "437:31:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2208,
+ "nodeType": "RevertStatement",
+ "src": "430:38:12"
+ }
+ },
+ {
+ "expression": {
+ "id": 2223,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "components": [
+ {
+ "id": 2210,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2199,
+ "src": "480:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2211,
+ "name": "token1",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2201,
+ "src": "488:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2212,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "TupleExpression",
+ "src": "479:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2215,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2213,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "498:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 2214,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "507:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "498:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseExpression": {
+ "components": [
+ {
+ "id": 2219,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "562:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2220,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "570:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2221,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "561:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "id": 2222,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "Conditional",
+ "src": "498:79:12",
+ "trueExpression": {
+ "components": [
+ {
+ "id": 2216,
+ "name": "tokenA",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2194,
+ "src": "530:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2217,
+ "name": "tokenB",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2196,
+ "src": "538:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "id": 2218,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "529:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$_t_address_$_t_address_$",
+ "typeString": "tuple(address,address)"
+ }
+ },
+ "src": "479:98:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2224,
+ "nodeType": "ExpressionStatement",
+ "src": "479:98:12"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 2230,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2225,
+ "name": "token0",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2199,
+ "src": "675:6:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 2228,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "693:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 2227,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "685:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 2226,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "685:7:12",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 2229,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "685:10:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "675:20:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 2234,
+ "nodeType": "IfStatement",
+ "src": "671:59:12",
+ "trueBody": {
+ "errorCall": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 2231,
+ "name": "PoolFactory__ZeroAddress",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2192,
+ "src": "704:24:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 2232,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "704:26:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2233,
+ "nodeType": "RevertStatement",
+ "src": "697:33:12"
+ }
+ }
+ ]
+ },
+ "id": 2236,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "sortTokens",
+ "nameLocation": "274:10:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2197,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2194,
+ "mutability": "mutable",
+ "name": "tokenA",
+ "nameLocation": "303:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "295:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2193,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "295:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2196,
+ "mutability": "mutable",
+ "name": "tokenB",
+ "nameLocation": "328:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "320:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2195,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "320:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "284:57:12"
+ },
+ "returnParameters": {
+ "id": 2202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2199,
+ "mutability": "mutable",
+ "name": "token0",
+ "nameLocation": "373:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "365:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2198,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "365:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2201,
+ "mutability": "mutable",
+ "name": "token1",
+ "nameLocation": "389:6:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2236,
+ "src": "381:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2200,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "381:7:12",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "364:32:12"
+ },
+ "scope": 2295,
+ "src": "265:473:12",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 2293,
+ "nodeType": "Block",
+ "src": "1077:437:12",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2248,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2238,
+ "src": "1096:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2249,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1107:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1096:12:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e54",
+ "id": 2251,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1110:45:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT\""
+ }
+ ],
+ "id": 2247,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "1088:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2252,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1088:68:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2253,
+ "nodeType": "ExpressionStatement",
+ "src": "1088:68:12"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "id": 2261,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2257,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2255,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2240,
+ "src": "1189:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1201:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1189:13:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "&&",
+ "rightExpression": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2260,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2258,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2242,
+ "src": "1206:10:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": ">",
+ "rightExpression": {
+ "hexValue": "30",
+ "id": 2259,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1219:1:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "src": "1206:14:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "src": "1189:31:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c4951554944495459",
+ "id": 2262,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1235:42:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ },
+ "value": "UniswapV2Library: INSUFFICIENT_LIQUIDITY"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ {
+ "typeIdentifier": "t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "typeString": "literal_string \"UniswapV2Library: INSUFFICIENT_LIQUIDITY\""
+ }
+ ],
+ "id": 2254,
+ "name": "require",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ -18,
+ -18
+ ],
+ "referencedDeclaration": -18,
+ "src": "1167:7:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
+ "typeString": "function (bool,string memory) pure"
+ }
+ },
+ "id": 2263,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "1167:121:12",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2264,
+ "nodeType": "ExpressionStatement",
+ "src": "1167:121:12"
+ },
+ {
+ "assignments": [
+ 2266
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2266,
+ "mutability": "mutable",
+ "name": "amountInWithFee",
+ "nameLocation": "1304:15:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1299:20:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2265,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1299:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2270,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2269,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2267,
+ "name": "amountIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2238,
+ "src": "1322:8:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "393937",
+ "id": 2268,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1333:3:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_997_by_1",
+ "typeString": "int_const 997"
+ },
+ "value": "997"
+ },
+ "src": "1322:14:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1299:37:12"
+ },
+ {
+ "assignments": [
+ 2272
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2272,
+ "mutability": "mutable",
+ "name": "numerator",
+ "nameLocation": "1352:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1347:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2271,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1347:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2276,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2275,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2273,
+ "name": "amountInWithFee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2266,
+ "src": "1364:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "id": 2274,
+ "name": "reserveOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2242,
+ "src": "1382:10:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1364:28:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1347:45:12"
+ },
+ {
+ "assignments": [
+ 2278
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 2278,
+ "mutability": "mutable",
+ "name": "denominator",
+ "nameLocation": "1408:11:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2293,
+ "src": "1403:16:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2277,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1403:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 2286,
+ "initialValue": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2285,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "components": [
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2281,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2279,
+ "name": "reserveIn",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2240,
+ "src": "1423:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "*",
+ "rightExpression": {
+ "hexValue": "31303030",
+ "id": 2280,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "1435:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_1000_by_1",
+ "typeString": "int_const 1000"
+ },
+ "value": "1000"
+ },
+ "src": "1423:16:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2282,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1422:18:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "+",
+ "rightExpression": {
+ "components": [
+ {
+ "id": 2283,
+ "name": "amountInWithFee",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2266,
+ "src": "1444:15:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "id": 2284,
+ "isConstant": false,
+ "isInlineArray": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "TupleExpression",
+ "src": "1443:17:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1422:38:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "1403:57:12"
+ },
+ {
+ "expression": {
+ "id": 2291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 2287,
+ "name": "amountOut",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2245,
+ "src": "1471:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 2290,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 2288,
+ "name": "numerator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2272,
+ "src": "1483:9:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "/",
+ "rightExpression": {
+ "id": 2289,
+ "name": "denominator",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2278,
+ "src": "1495:11:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1483:23:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "1471:35:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 2292,
+ "nodeType": "ExpressionStatement",
+ "src": "1471:35:12"
+ }
+ ]
+ },
+ "id": 2294,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "getAmountOut",
+ "nameLocation": "943:12:12",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2243,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2238,
+ "mutability": "mutable",
+ "name": "amountIn",
+ "nameLocation": "971:8:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "966:13:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2237,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "966:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2240,
+ "mutability": "mutable",
+ "name": "reserveIn",
+ "nameLocation": "995:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "990:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2239,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "990:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2242,
+ "mutability": "mutable",
+ "name": "reserveOut",
+ "nameLocation": "1020:10:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "1015:15:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2241,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1015:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "955:82:12"
+ },
+ "returnParameters": {
+ "id": 2246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2245,
+ "mutability": "mutable",
+ "name": "amountOut",
+ "nameLocation": "1066:9:12",
+ "nodeType": "VariableDeclaration",
+ "scope": 2294,
+ "src": "1061:14:12",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2244,
+ "name": "uint",
+ "nodeType": "ElementaryTypeName",
+ "src": "1061:4:12",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1060:16:12"
+ },
+ "scope": 2295,
+ "src": "934:580:12",
+ "stateMutability": "pure",
+ "virtual": false,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 2296,
+ "src": "137:1380:12",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "33:1484:12"
+ },
+ "id": 12
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol",
+ "exportedSymbols": {
+ "AppleToken": [
+ 2322
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 2323,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2297,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:13"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2298,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2323,
+ "sourceUnit": 652,
+ "src": "61:55:13",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2299,
+ "name": "ERC20",
+ "nameLocations": [
+ "143:5:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "143:5:13"
+ },
+ "id": 2300,
+ "nodeType": "InheritanceSpecifier",
+ "src": "143:5:13"
+ }
+ ],
+ "canonicalName": "AppleToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2322,
+ "linearizedBaseContracts": [
+ 2322,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "AppleToken",
+ "nameLocation": "129:10:13",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2307,
+ "nodeType": "Block",
+ "src": "192:2:13",
+ "statements": []
+ },
+ "id": 2308,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4170706c65",
+ "id": 2303,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "176:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1",
+ "typeString": "literal_string \"Apple\""
+ },
+ "value": "Apple"
+ },
+ {
+ "hexValue": "415054",
+ "id": 2304,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "185:5:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1",
+ "typeString": "literal_string \"APT\""
+ },
+ "value": "APT"
+ }
+ ],
+ "id": 2305,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2302,
+ "name": "ERC20",
+ "nameLocations": [
+ "170:5:13"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "170:5:13"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "170:21:13"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2301,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "167:2:13"
+ },
+ "returnParameters": {
+ "id": 2306,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "192:0:13"
+ },
+ "scope": 2322,
+ "src": "156:38:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2320,
+ "nodeType": "Block",
+ "src": "252:37:13",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2316,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2310,
+ "src": "269:3:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2317,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2312,
+ "src": "274:6:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2315,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "263:5:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2318,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "263:18:13",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2319,
+ "nodeType": "ExpressionStatement",
+ "src": "263:18:13"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2321,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "211:4:13",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2310,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "224:3:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 2321,
+ "src": "216:11:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2309,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "216:7:13",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2312,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "237:6:13",
+ "nodeType": "VariableDeclaration",
+ "scope": 2321,
+ "src": "229:14:13",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2311,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "229:7:13",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "215:29:13"
+ },
+ "returnParameters": {
+ "id": 2314,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "252:0:13"
+ },
+ "scope": 2322,
+ "src": "202:87:13",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2323,
+ "src": "120:205:13",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:292:13"
+ },
+ "id": 13
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "exportedSymbols": {
+ "CherryToken": [
+ 2349
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 2350,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2324,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:14"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2325,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2350,
+ "sourceUnit": 652,
+ "src": "61:55:14",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2326,
+ "name": "ERC20",
+ "nameLocations": [
+ "144:5:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "144:5:14"
+ },
+ "id": 2327,
+ "nodeType": "InheritanceSpecifier",
+ "src": "144:5:14"
+ }
+ ],
+ "canonicalName": "CherryToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2349,
+ "linearizedBaseContracts": [
+ 2349,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "CherryToken",
+ "nameLocation": "129:11:14",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2334,
+ "nodeType": "Block",
+ "src": "194:2:14",
+ "statements": []
+ },
+ "id": 2335,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "436865727279",
+ "id": 2330,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "177:8:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f",
+ "typeString": "literal_string \"Cherry\""
+ },
+ "value": "Cherry"
+ },
+ {
+ "hexValue": "434854",
+ "id": 2331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "187:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18",
+ "typeString": "literal_string \"CHT\""
+ },
+ "value": "CHT"
+ }
+ ],
+ "id": 2332,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2329,
+ "name": "ERC20",
+ "nameLocations": [
+ "171:5:14"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "171:5:14"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "171:22:14"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2328,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "168:2:14"
+ },
+ "returnParameters": {
+ "id": 2333,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "194:0:14"
+ },
+ "scope": 2349,
+ "src": "157:39:14",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2347,
+ "nodeType": "Block",
+ "src": "254:37:14",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2343,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2337,
+ "src": "271:3:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2344,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2339,
+ "src": "276:6:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2342,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "265:5:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2345,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "265:18:14",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2346,
+ "nodeType": "ExpressionStatement",
+ "src": "265:18:14"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2348,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "213:4:14",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2340,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2337,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "226:3:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 2348,
+ "src": "218:11:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2336,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "218:7:14",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2339,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "239:6:14",
+ "nodeType": "VariableDeclaration",
+ "scope": 2348,
+ "src": "231:14:14",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2338,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "231:7:14",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "217:29:14"
+ },
+ "returnParameters": {
+ "id": 2341,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "254:0:14"
+ },
+ "scope": 2349,
+ "src": "204:87:14",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2350,
+ "src": "120:207:14",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:294:14"
+ },
+ "id": 14
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/WEdu.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ],
+ "WrappedEduToken": [
+ 2376
+ ]
+ },
+ "id": 2377,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 2351,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:15"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 2352,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 2377,
+ "sourceUnit": 652,
+ "src": "61:55:15",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 2353,
+ "name": "ERC20",
+ "nameLocations": [
+ "148:5:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "148:5:15"
+ },
+ "id": 2354,
+ "nodeType": "InheritanceSpecifier",
+ "src": "148:5:15"
+ }
+ ],
+ "canonicalName": "WrappedEduToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 2376,
+ "linearizedBaseContracts": [
+ 2376,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "WrappedEduToken",
+ "nameLocation": "129:15:15",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 2361,
+ "nodeType": "Block",
+ "src": "203:2:15",
+ "statements": []
+ },
+ "id": 2362,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "57726170706564456475",
+ "id": 2357,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "181:12:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_9d2c40ce1145c803d19154c99230574a718278dfcf348201d9e7bd406d922479",
+ "typeString": "literal_string \"WrappedEdu\""
+ },
+ "value": "WrappedEdu"
+ },
+ {
+ "hexValue": "57454455",
+ "id": 2358,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "195:6:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bed1a8fd09420c615b9bb36dcf472a31a655a4394e290117eeef8ad2c3f99f03",
+ "typeString": "literal_string \"WEDU\""
+ },
+ "value": "WEDU"
+ }
+ ],
+ "id": 2359,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 2356,
+ "name": "ERC20",
+ "nameLocations": [
+ "175:5:15"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "175:5:15"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "175:27:15"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2355,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "172:2:15"
+ },
+ "returnParameters": {
+ "id": 2360,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "203:0:15"
+ },
+ "scope": 2376,
+ "src": "161:44:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 2374,
+ "nodeType": "Block",
+ "src": "372:37:15",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 2370,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2364,
+ "src": "389:3:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 2371,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 2366,
+ "src": "394:6:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 2369,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "383:5:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 2372,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "383:18:15",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 2373,
+ "nodeType": "ExpressionStatement",
+ "src": "383:18:15"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 2375,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "331:4:15",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 2367,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 2364,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "344:3:15",
+ "nodeType": "VariableDeclaration",
+ "scope": 2375,
+ "src": "336:11:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 2363,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "336:7:15",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 2366,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "357:6:15",
+ "nodeType": "VariableDeclaration",
+ "scope": 2375,
+ "src": "349:14:15",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 2365,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "349:7:15",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "335:29:15"
+ },
+ "returnParameters": {
+ "id": 2368,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "372:0:15"
+ },
+ "scope": 2376,
+ "src": "322:87:15",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 2377,
+ "src": "120:325:15",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:412:15"
+ },
+ "id": 15
+ }
+ },
+ "contracts": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "IERC1155Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "idsLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "valuesLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InvalidArrayLength",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155MissingApprovalForAll",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC20Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC721Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721IncorrectOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC721InsufficientApproval",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC721NonexistentToken",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "ERC20": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "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.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC-20 applications.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "IERC20": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-20 standard as defined in the ERC.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "IERC20Metadata": {
+ "abi": [
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "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.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC-20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]}},\"version\":1}"
+ }
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "Context": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Factory.sol": {
+ "PoolFactory": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__NotSetter",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__PoolExists",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "addToFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "getTokenPairs",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiver",
+ "type": "address"
+ }
+ ],
+ "name": "setFeeReceiver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_832": {
+ "entryPoint": null,
+ "id": 832,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 221,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address_fromMemory": {
+ "entryPoint": 242,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 180,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 148,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 143,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 198,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:1199:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "759:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "769:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "784:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "778:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "778:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "769:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "827:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "800:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "800:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "800:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "737:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "745:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "753:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "922:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "968:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "970:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "970:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "970:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "943:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "952:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "939:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "939:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "964:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "935:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "935:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "932:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1061:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1076:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1090:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1080:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1105:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1151:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1162:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1147:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1147:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1171:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1115:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1115:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1105:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "892:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "903:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "915:6:16",
+ "type": ""
+ }
+ ],
+ "src": "845:351:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x2F73 CODESIZE SUB DUP1 PUSH2 0x2F73 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xF2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP PUSH2 0x11F JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBF DUP3 PUSH2 0x94 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCF DUP2 PUSH2 0xB4 JUMP JUMPDEST DUP2 EQ PUSH2 0xDA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEC DUP2 PUSH2 0xC6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x108 JUMPI PUSH2 0x107 PUSH2 0x8F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x116 DUP5 DUP3 DUP6 ADD PUSH2 0xDD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2E45 DUP1 PUSH2 0x12E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ",
+ "sourceMap": "262:2334:5:-:0;;;568:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;659:4;619:17;:37;637:18;619:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;568:103;262:2334;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:351::-;915:6;964:2;952:9;943:7;939:23;935:32;932:119;;;970:79;;:::i;:::-;932:119;1090:1;1115:64;1171:7;1162:6;1151:9;1147:22;1115:64;:::i;:::-;1105:74;;1061:128;845:351;;;;:::o;262:2334:5:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@addToFeeReceiverSetter_986": {
+ "entryPoint": 571,
+ "id": 986,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "@checkIfSetter_1018": {
+ "entryPoint": 2042,
+ "id": 1018,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@createPool_942": {
+ "entryPoint": 671,
+ "id": 942,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@getTokenPairs_958": {
+ "entryPoint": 404,
+ "id": 958,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@removeFromFeeReceiverSetter_1001": {
+ "entryPoint": 303,
+ "id": 1001,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "@setFeeReceiver_971": {
+ "entryPoint": 1965,
+ "id": 971,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 2279,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 2302,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 2352,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 2423,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
+ "entryPoint": 2522,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed": {
+ "entryPoint": 2549,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 2440,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 2597,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 2642,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2233,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2201,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "leftAlign_t_address": {
+ "entryPoint": 2502,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "leftAlign_t_uint160": {
+ "entryPoint": 2482,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2196,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "shift_left_96": {
+ "entryPoint": 2469,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 2253,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:3663:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "748:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "758:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "780:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "767:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "767:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "758:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "823:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "796:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "796:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "796:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "726:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "734:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "742:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "907:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "953:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "955:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "955:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "955:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "928:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "937:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "924:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "924:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "949:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "920:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "920:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "917:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1046:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1061:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1075:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1065:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1090:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1125:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1136:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1121:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1121:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1145:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1100:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1100:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1090:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "877:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "888:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "900:6:16",
+ "type": ""
+ }
+ ],
+ "src": "841:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1259:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1305:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "1307:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1307:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1307:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1280:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1289:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1276:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1276:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1301:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1269:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1398:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1413:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1427:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1417:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1442:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1477:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1488:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1473:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1473:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1497:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1452:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1452:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1442:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1525:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1540:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1554:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1544:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1570:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1605:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1616:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1601:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1601:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1625:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1580:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1580:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1570:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1221:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1232:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1244:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1252:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1176:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "1738:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1761:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1743:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1743:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1731:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1731:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1731:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1709:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "1716:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1656:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1878:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1888:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1900:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1911:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1896:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1896:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1888:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1968:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1981:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1992:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1977:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1977:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1924:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1924:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1924:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1850:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1862:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1873:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1780:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2050:52:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2060:35:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2085:2:16",
+ "type": "",
+ "value": "96"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2089:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "2081:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2081:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "2060:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_96",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2031:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "2041:8:16",
+ "type": ""
+ }
+ ],
+ "src": "2008:94:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2155:47:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2165:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2190:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_96",
+ "nodeType": "YulIdentifier",
+ "src": "2176:13:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2176:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "aligned",
+ "nodeType": "YulIdentifier",
+ "src": "2165:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "leftAlign_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2137:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "aligned",
+ "nodeType": "YulTypedName",
+ "src": "2147:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2108:94:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2255:53:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2265:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2296:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "leftAlign_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "2276:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2276:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "aligned",
+ "nodeType": "YulIdentifier",
+ "src": "2265:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "leftAlign_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2237:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "aligned",
+ "nodeType": "YulTypedName",
+ "src": "2247:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2208:100:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2397:74:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2414:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2457:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2439:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2439:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "leftAlign_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2419:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2419:45:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2407:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2407:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2407:58:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2385:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2392:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2314:157:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2621:253:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2694:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2703:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2632:61:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2632:75:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2632:75:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2716:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2727:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2732:2:16",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2723:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2723:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2716:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2807:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2816:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2745:61:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2745:75:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2745:75:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2829:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2840:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2845:2:16",
+ "type": "",
+ "value": "20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2829:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2858:10:16",
+ "value": {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2865:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2858:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2592:3:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2598:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2606:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2617:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2477:397:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3006:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3016:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3028:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3039:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3024:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3024:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3016:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3096:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3109:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3120:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3105:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3105:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3052:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3052:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3052:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "3177:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3190:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3201:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3186:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3186:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3133:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2970:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2982:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2990:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3001:4:16",
+ "type": ""
+ }
+ ],
+ "src": "2880:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3372:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3382:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3394:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3405:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3390:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3390:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3382:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3462:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3475:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3486:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3471:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3471:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3418:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3418:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "3543:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3556:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3567:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3552:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3552:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3499:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3499:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3499:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "3625:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3638:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3649:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3634:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3634:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3581:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3581:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3581:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3328:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3340:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3348:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3356:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3367:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3218:442:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address__to_t_address_t_address__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH3 0x5E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x48397023 EQ PUSH3 0x63 JUMPI DUP1 PUSH4 0x4A70F02E EQ PUSH3 0x83 JUMPI DUP1 PUSH4 0x5AC40AB3 EQ PUSH3 0xB9 JUMPI DUP1 PUSH4 0xE3433615 EQ PUSH3 0xD9 JUMPI DUP1 PUSH4 0xEFDCD974 EQ PUSH3 0x10F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x81 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x7B SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x12F JUMP JUMPDEST STOP JUMPDEST PUSH3 0xA1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x9B SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x194 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xB0 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0xD7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xD1 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x23B JUMP JUMPDEST STOP JUMPDEST PUSH3 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0xF1 SWAP2 SWAP1 PUSH3 0x930 JUMP JUMPDEST PUSH3 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x106 SWAP2 SWAP1 PUSH3 0x988 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH3 0x12D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH3 0x127 SWAP2 SWAP1 PUSH3 0x8FE JUMP JUMPDEST PUSH3 0x7AD JUMP JUMPDEST STOP JUMPDEST PUSH3 0x139 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x245 PUSH3 0x7FA JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x307 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH3 0x346 JUMPI DUP4 DUP6 PUSH3 0x349 JUMP JUMPDEST DUP5 DUP5 JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH3 0x3B4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x2 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH3 0x4B7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x423D793500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH3 0x4CB SWAP1 PUSH3 0x886 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH3 0x4F8 SWAP3 SWAP2 SWAP1 PUSH3 0x9F5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP DUP1 DUP3 MLOAD PUSH1 0x20 DUP5 ADD PUSH1 0x0 CREATE2 SWAP5 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF09A4016 DUP9 DUP9 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH3 0x559 SWAP3 SWAP2 SWAP1 PUSH3 0xA25 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH3 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH3 0x589 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP5 PUSH1 0x2 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3 DUP6 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x9C5D829B9B23EFC461F9AEEF91979EC04BB903FEB3BEE4F26D22114ABFC7335B DUP5 DUP5 DUP8 PUSH1 0x40 MLOAD PUSH3 0x79B SWAP4 SWAP3 SWAP2 SWAP1 PUSH3 0xA52 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x7B7 PUSH3 0x7FA JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP DUP1 PUSH3 0x883 JUMPI PUSH1 0x40 MLOAD PUSH32 0xE9E1731800000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x2380 DUP1 PUSH3 0xA90 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x8C6 DUP3 PUSH3 0x899 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x8D8 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP2 EQ PUSH3 0x8E4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH3 0x8F8 DUP2 PUSH3 0x8CD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x917 JUMPI PUSH3 0x916 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x927 DUP5 DUP3 DUP6 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x94A JUMPI PUSH3 0x949 PUSH3 0x894 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x95A DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x96D DUP6 DUP3 DUP7 ADD PUSH3 0x8E7 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH3 0x982 DUP2 PUSH3 0x8B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH3 0x99F PUSH1 0x0 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9BF DUP3 PUSH3 0x9A5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9D3 DUP3 PUSH3 0x9B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x9EF PUSH3 0x9E9 DUP3 PUSH3 0x8B9 JUMP JUMPDEST PUSH3 0x9C6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xA03 DUP3 DUP6 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH3 0xA15 DUP3 DUP5 PUSH3 0x9DA JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH3 0xA3C PUSH1 0x0 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA4B PUSH1 0x20 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH3 0xA69 PUSH1 0x0 DUP4 ADD DUP7 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA78 PUSH1 0x20 DUP4 ADD DUP6 PUSH3 0x977 JUMP JUMPDEST PUSH3 0xA87 PUSH1 0x40 DUP4 ADD DUP5 PUSH3 0x977 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP INVALID PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB EXTCODESIZE 0x5D 0xE0 CALLDATACOPY SIGNEXTEND JUMPDEST 0xDA 0xE7 GAS SAR 0x2F PUSH17 0x52164D24C77E596796D197D0FB0E42CE83 PUSH13 0x9564736F6C6343000814003300 ",
+ "sourceMap": "262:2334:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1781;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2091:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;679:1094;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2259:166;2344:15;:13;:15::i;:::-;2412:5;2372:17;:37;2390:18;2372:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;2259:166;:::o;1781:::-;1886:7;1913:8;:17;1922:7;1913:17;;;;;;;;;;;;;;;:26;1931:7;1913:26;;;;;;;;;;;;;;;;;;;;;;;;;1906:33;;1781:166;;;;:::o;2091:160::-;2171:15;:13;:15::i;:::-;2239:4;2199:17;:37;2217:18;2199:37;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2091:160;:::o;679:1094::-;774:19;820:6;810:16;;:6;:16;;;806:60;;835:31;;;;;;;;;;;;;;806:60;878:14;894;921:6;912:15;;:6;:15;;;:79;;976:6;984;912:79;;;944:6;952;912:79;877:114;;;;1107:1;1089:20;;:6;:20;;;1085:59;;1118:26;;;;;;;;;;;;;;1085:59;1195:1;1159:38;;:8;:16;1168:6;1159:16;;;;;;;;;;;;;;;:24;1176:6;1159:24;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;1155:89;;1219:25;;;;;;;;;;;;;;1155:89;1257:21;1281:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1257:47;;1315:12;1357:6;1365;1340:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1330:43;;;;;;1315:58;;1504:4;1493:8;1487:15;1482:2;1472:8;1468:17;1465:1;1457:52;1442:67;;1537:11;1532:22;;;1555:6;1563;1532:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1610:11;1583:8;:16;1592:6;1583:16;;;;;;;;;;;;;;;:24;1600:6;1583:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1659:11;1632:8;:16;1641:6;1632:16;;;;;;;;;;;;;;;:24;1649:6;1632:24;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1681:8;1695:11;1681:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1725:40;1737:6;1745;1753:11;1725:40;;;;;;;;:::i;:::-;;;;;;;;795:978;;;;679:1094;;;;:::o;1955:128::-;2021:15;:13;:15::i;:::-;2063:12;2049:11;;:26;;;;;;;;;;;;;;;;;;1955:128;:::o;2433:160::-;2483:13;2499:17;:29;2517:10;2499:29;;;;;;;;;;;;;;;;;;;;;;;;;2483:45;;2544:8;2539:46;;2561:24;;;;;;;;;;;;;;2539:46;2472:121;2433:160::o;-1:-1:-1:-;;;;;;;;:::o;88:117:16:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:474::-;1244:6;1252;1301:2;1289:9;1280:7;1276:23;1272:32;1269:119;;;1307:79;;:::i;:::-;1269:119;1427:1;1452:53;1497:7;1488:6;1477:9;1473:22;1452:53;:::i;:::-;1442:63;;1398:117;1554:2;1580:53;1625:7;1616:6;1605:9;1601:22;1580:53;:::i;:::-;1570:63;;1525:118;1176:474;;;;;:::o;1656:118::-;1743:24;1761:5;1743:24;:::i;:::-;1738:3;1731:37;1656:118;;:::o;1780:222::-;1873:4;1911:2;1900:9;1896:18;1888:26;;1924:71;1992:1;1981:9;1977:17;1968:6;1924:71;:::i;:::-;1780:222;;;;:::o;2008:94::-;2041:8;2089:5;2085:2;2081:14;2060:35;;2008:94;;;:::o;2108:::-;2147:7;2176:20;2190:5;2176:20;:::i;:::-;2165:31;;2108:94;;;:::o;2208:100::-;2247:7;2276:26;2296:5;2276:26;:::i;:::-;2265:37;;2208:100;;;:::o;2314:157::-;2419:45;2439:24;2457:5;2439:24;:::i;:::-;2419:45;:::i;:::-;2414:3;2407:58;2314:157;;:::o;2477:397::-;2617:3;2632:75;2703:3;2694:6;2632:75;:::i;:::-;2732:2;2727:3;2723:12;2716:19;;2745:75;2816:3;2807:6;2745:75;:::i;:::-;2845:2;2840:3;2836:12;2829:19;;2865:3;2858:10;;2477:397;;;;;:::o;2880:332::-;3001:4;3039:2;3028:9;3024:18;3016:26;;3052:71;3120:1;3109:9;3105:17;3096:6;3052:71;:::i;:::-;3133:72;3201:2;3190:9;3186:18;3177:6;3133:72;:::i;:::-;2880:332;;;;;:::o;3218:442::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3418:71;3486:1;3475:9;3471:17;3462:6;3418:71;:::i;:::-;3499:72;3567:2;3556:9;3552:18;3543:6;3499:72;:::i;:::-;3581;3649:2;3638:9;3634:18;3625:6;3581:72;:::i;:::-;3218:442;;;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "addToFeeReceiverSetter(address)": "5ac40ab3",
+ "createPool(address,address)": "e3433615",
+ "getTokenPairs(address,address)": "4a70f02e",
+ "removeFromFeeReceiverSetter(address)": "48397023",
+ "setFeeReceiver(address)": "efdcd974"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotSetter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__PoolExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"addToFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiverSetter\",\"type\":\"address\"}],\"name\":\"removeFromFeeReceiverSetter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"}],\"name\":\"setFeeReceiver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Factory.sol\":\"PoolFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Factory.sol\":{\"keccak256\":\"0x9ef7e0edffae4017557d58a52eed271c2ed271de3d75480311dfbaff6f2a78f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6caf97ed7c98d86b9005ab343db17922d5b5d0ffedf9e4ed36bbe2d726bb6925\",\"dweb:/ipfs/QmTEUryHqNfRSEMKXMwMsJ9ZQ9QsDjg4dHZJHJdsVtarQf\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/LiquidityProvider.sol": {
+ "LiquidityProvider": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_factoryAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WEDU",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenADesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenBDesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenB",
+ "type": "uint256"
+ }
+ ],
+ "name": "addLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "pair",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "getAmountsOut",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "swapExactTokensForTokens",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_1052": {
+ "entryPoint": null,
+ "id": 1052,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 250,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address_fromMemory": {
+ "entryPoint": 273,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 204,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 172,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 167,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 224,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:1355:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "759:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "769:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "784:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "778:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "778:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "769:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "827:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "800:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "800:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "800:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "737:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "745:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "753:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "939:413:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "985:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "987:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "987:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "987:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "960:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "969:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "956:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "956:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "981:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "952:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "952:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "949:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1078:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1093:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1107:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1097:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1122:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1168:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1179:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1164:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1164:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1188:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1132:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1132:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1122:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1216:129:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1231:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1245:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1235:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1261:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1307:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1318:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1303:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1303:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1327:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "1271:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1271:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1261:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "901:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "912:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "924:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "932:6:16",
+ "type": ""
+ }
+ ],
+ "src": "845:507:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "opcodes": "PUSH1 0xC0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0x1B96 CODESIZE SUB DUP1 PUSH3 0x1B96 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH3 0x37 SWAP2 SWAP1 PUSH3 0x111 JUMP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0xA0 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP POP POP PUSH3 0x158 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xD9 DUP3 PUSH3 0xAC JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0xEB DUP2 PUSH3 0xCC JUMP JUMPDEST DUP2 EQ PUSH3 0xF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH3 0x10B DUP2 PUSH3 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x12B JUMPI PUSH3 0x12A PUSH3 0xA7 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH3 0x13B DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH3 0x14E DUP6 DUP3 DUP7 ADD PUSH3 0xFA JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0xA0 MLOAD PUSH2 0x1A07 PUSH3 0x18F PUSH1 0x0 CODECOPY PUSH1 0x0 POP POP PUSH1 0x0 DUP2 DUP2 PUSH1 0xF7 ADD MSTORE DUP2 DUP2 PUSH2 0x328 ADD MSTORE DUP2 DUP2 PUSH2 0x794 ADD MSTORE PUSH2 0x868 ADD MSTORE PUSH2 0x1A07 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ",
+ "sourceMap": "471:5908:6:-:0;;;591:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;671:15;654:32;;;;;;;;;;704:5;697:12;;;;;;;;;;591:126;;471:5908;;88:117:16;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:507::-;924:6;932;981:2;969:9;960:7;956:23;952:32;949:119;;;987:79;;:::i;:::-;949:119;1107:1;1132:64;1188:7;1179:6;1168:9;1164:22;1132:64;:::i;:::-;1122:74;;1078:128;1245:2;1271:64;1327:7;1318:6;1307:9;1303:22;1271:64;:::i;:::-;1261:74;;1216:129;845:507;;;;;:::o;471:5908:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_addLiquidity_1185": {
+ "entryPoint": 1933,
+ "id": 1185,
+ "parameterSlots": 6,
+ "returnSlots": 2
+ },
+ "@_swap_1350": {
+ "entryPoint": 2677,
+ "id": 1350,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@addLiquidity_1260": {
+ "entryPoint": 216,
+ "id": 1260,
+ "parameterSlots": 6,
+ "returnSlots": 3
+ },
+ "@getAmountOut_2294": {
+ "entryPoint": 3071,
+ "id": 2294,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@getAmountsOut_1536": {
+ "entryPoint": 1503,
+ "id": 1536,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@quote_1460": {
+ "entryPoint": 3305,
+ "id": 1460,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@sortTokens_2236": {
+ "entryPoint": 3484,
+ "id": 2236,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "@swapExactTokensForTokens_1421": {
+ "entryPoint": 802,
+ "id": 1421,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4770,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3859,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address_fromMemory": {
+ "entryPoint": 5088,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_array$_t_address_$dyn_calldata_ptr": {
+ "entryPoint": 4160,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4875,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_bool_fromMemory": {
+ "entryPoint": 5244,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3913,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256_fromMemory": {
+ "entryPoint": 5337,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 5450,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address_fromMemory": {
+ "entryPoint": 5109,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256": {
+ "entryPoint": 3934,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 6
+ },
+ "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4921,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 5265,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 5358,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256t_uint256_fromMemory": {
+ "entryPoint": 5719,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr": {
+ "entryPoint": 4246,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 4
+ },
+ "abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
+ "entryPoint": 4421,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 5032,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
+ "entryPoint": 4458,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 5652,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6234,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6542,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6088,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256": {
+ "entryPoint": 4406,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 4075,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 5310,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": {
+ "entryPoint": 5047,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed": {
+ "entryPoint": 5154,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
+ "entryPoint": 4552,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 5687,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6269,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6577,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6123,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed": {
+ "entryPoint": 5954,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 4090,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "allocate_memory": {
+ "entryPoint": 4699,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": 3766,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": {
+ "entryPoint": 4726,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4390,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4362,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
+ "entryPoint": 4445,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
+ "entryPoint": 4373,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 5594,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 5783,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_div_t_uint256": {
+ "entryPoint": 6414,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_mul_t_uint256": {
+ "entryPoint": 6301,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_sub_t_uint256": {
+ "entryPoint": 5542,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 3818,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 5209,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 3786,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3880,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "finalize_allocation": {
+ "entryPoint": 4650,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "increment_t_uint256": {
+ "entryPoint": 5835,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x01": {
+ "entryPoint": 5907,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x11": {
+ "entryPoint": 5495,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x12": {
+ "entryPoint": 6367,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x32": {
+ "entryPoint": 5403,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 4603,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": {
+ "entryPoint": 4150,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
+ "entryPoint": 4145,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
+ "entryPoint": 4155,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": 3781,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 3776,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 4586,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222": {
+ "entryPoint": 5611,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8": {
+ "entryPoint": 6155,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44": {
+ "entryPoint": 6463,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae": {
+ "entryPoint": 6009,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3836,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_bool": {
+ "entryPoint": 5221,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3890,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:20048:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "47:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "57:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "73:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "67:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "67:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "57:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "40:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "177:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "194:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "197:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "187:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "187:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "187:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "88:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "300:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "317:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "320:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "310:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "310:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "310:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "211:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "379:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "389:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "404:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "411:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "400:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "400:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "389:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "361:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "371:7:16",
+ "type": ""
+ }
+ ],
+ "src": "334:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "511:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "521:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "550:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "532:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "532:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "521:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "493:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "503:7:16",
+ "type": ""
+ }
+ ],
+ "src": "466:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "611:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "668:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "677:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "680:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "670:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "670:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "670:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "634:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "659:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "641:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "631:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "631:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "624:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "624:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "621:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "604:5:16",
+ "type": ""
+ }
+ ],
+ "src": "568:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "748:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "758:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "780:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "767:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "767:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "758:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "823:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "796:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "796:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "796:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "726:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "734:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "742:5:16",
+ "type": ""
+ }
+ ],
+ "src": "696:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "886:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "896:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "907:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "896:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "868:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "878:7:16",
+ "type": ""
+ }
+ ],
+ "src": "841:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "967:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1024:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1033:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1026:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1026:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1026:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "990:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1015:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "997:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "997:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "987:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "987:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "980:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "980:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "977:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "960:5:16",
+ "type": ""
+ }
+ ],
+ "src": "924:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1104:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1114:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1136:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "1123:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1123:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1114:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1179:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1152:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1152:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1152:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1082:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "1090:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1098:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1052:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1348:906:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1395:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "1397:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1397:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1397:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1369:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1378:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1365:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1365:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1390:3:16",
+ "type": "",
+ "value": "192"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "1361:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1361:33:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1358:120:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1488:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1503:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1517:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1507:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1532:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1567:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1578:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1563:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1563:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1587:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1542:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1542:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1532:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1615:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1630:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1644:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1634:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1660:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1695:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1706:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1691:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1691:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1715:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1670:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1670:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "1660:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1743:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1758:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1772:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1762:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1788:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1823:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1834:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1819:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1819:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1843:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1798:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1798:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "1788:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1871:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1886:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1900:2:16",
+ "type": "",
+ "value": "96"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "1890:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1916:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1951:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "1962:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1947:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1947:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "1971:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1926:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1926:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "1916:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "1999:119:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2014:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2028:3:16",
+ "type": "",
+ "value": "128"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2018:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2045:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2080:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2091:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2076:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2076:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2100:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2055:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2055:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value4",
+ "nodeType": "YulIdentifier",
+ "src": "2045:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2128:119:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2143:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2157:3:16",
+ "type": "",
+ "value": "160"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2147:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2174:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2209:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2220:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2205:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2205:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2229:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2184:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2184:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value5",
+ "nodeType": "YulIdentifier",
+ "src": "2174:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1278:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "1289:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1301:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "1309:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "1317:6:16",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "1325:6:16",
+ "type": ""
+ },
+ {
+ "name": "value4",
+ "nodeType": "YulTypedName",
+ "src": "1333:6:16",
+ "type": ""
+ },
+ {
+ "name": "value5",
+ "nodeType": "YulTypedName",
+ "src": "1341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1197:1057:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2325:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "2342:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2365:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2347:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2347:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "2335:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2335:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2335:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2313:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "2320:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2260:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2538:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2548:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2560:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2571:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2556:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2556:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "2548:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2628:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2641:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2652:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2637:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2637:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2584:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2584:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2584:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2709:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2722:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2733:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2718:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2718:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2665:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2665:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2665:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "2791:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2804:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2815:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2800:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2800:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "2747:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2747:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2747:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2494:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "2506:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2514:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2522:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "2533:4:16",
+ "type": ""
+ }
+ ],
+ "src": "2384:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2921:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2938:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2941:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2931:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2931:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2931:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulFunctionDefinition",
+ "src": "2832:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3044:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3061:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3064:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3054:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3054:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3054:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
+ "nodeType": "YulFunctionDefinition",
+ "src": "2955:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3167:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3184:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3187:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "3177:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3177:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3177:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulFunctionDefinition",
+ "src": "3078:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3308:478:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3357:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulIdentifier",
+ "src": "3359:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3359:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3359:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3336:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3344:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3332:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3332:17:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "3351:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3328:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3328:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3321:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3321:35:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3318:122:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3449:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3472:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "3459:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3459:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3449:6:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3522:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490",
+ "nodeType": "YulIdentifier",
+ "src": "3524:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3524:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3524:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3494:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3502:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3491:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3491:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3488:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3614:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "3630:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3638:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3626:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3626:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulIdentifier",
+ "src": "3614:8:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3697:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulIdentifier",
+ "src": "3699:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3699:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3699:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulIdentifier",
+ "src": "3662:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "3676:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3684:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3672:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3672:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3658:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3658:32:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "3692:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "3655:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3655:41:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3652:128:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "3275:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "3283:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "arrayPos",
+ "nodeType": "YulTypedName",
+ "src": "3291:8:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "3301:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3218:568:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3927:714:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3973:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3975:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3975:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3975:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3948:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3957:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3944:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3944:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3969:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3940:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3940:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3937:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4066:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4081:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4095:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4085:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4110:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4145:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4156:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4141:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4141:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4165:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4120:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4120:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4110:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4193:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4208:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4222:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4212:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4238:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4273:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4284:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4269:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4269:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4293:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4248:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4248:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4238:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4321:313:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4336:46:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4367:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4378:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4363:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4363:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "4350:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4350:32:16"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4340:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4429:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulIdentifier",
+ "src": "4431:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4431:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4431:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4401:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4409:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4398:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4398:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4395:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4526:98:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4596:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4607:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4592:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4592:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4616:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "4544:47:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4544:80:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4526:6:16"
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulIdentifier",
+ "src": "4534:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3873:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3884:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3896:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3904:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3912:6:16",
+ "type": ""
+ },
+ {
+ "name": "value3",
+ "nodeType": "YulTypedName",
+ "src": "3920:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3792:849:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4721:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4732:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4748:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4742:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4742:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "4732:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4704:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "4714:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4647:114:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4878:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4895:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "4900:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4888:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4888:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4888:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4916:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4935:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4940:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4931:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4931:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "4916:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4850:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "4855:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "4866:11:16",
+ "type": ""
+ }
+ ],
+ "src": "4767:184:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5029:60:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5039:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5047:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5039:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5060:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5072:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5077:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5068:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5068:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5060:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "5016:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5024:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4957:132:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5150:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5167:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5190:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5172:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5172:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5160:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5160:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5160:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5138:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5145:3:16",
+ "type": ""
+ }
+ ],
+ "src": "5095:108:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5289:99:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5333:6:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5341:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5299:33:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5299:46:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5299:46:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5354:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5372:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5377:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5368:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updatedPos",
+ "nodeType": "YulIdentifier",
+ "src": "5354:10:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5262:6:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5270:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updatedPos",
+ "nodeType": "YulTypedName",
+ "src": "5278:10:16",
+ "type": ""
+ }
+ ],
+ "src": "5209:179:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5469:38:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5479:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5491:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5496:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5487:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "next",
+ "nodeType": "YulIdentifier",
+ "src": "5479:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "5456:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "next",
+ "nodeType": "YulTypedName",
+ "src": "5464:4:16",
+ "type": ""
+ }
+ ],
+ "src": "5394:113:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5667:608:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5677:68:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5739:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5691:47:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5691:54:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5681:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5754:93:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5835:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5840:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5761:73:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5761:86:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "5754:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5856:71:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5921:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "5871:49:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5871:56:16"
+ },
+ "variables": [
+ {
+ "name": "baseRef",
+ "nodeType": "YulTypedName",
+ "src": "5860:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5936:21:16",
+ "value": {
+ "name": "baseRef",
+ "nodeType": "YulIdentifier",
+ "src": "5950:7:16"
+ },
+ "variables": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulTypedName",
+ "src": "5940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6026:224:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6040:34:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6067:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "6061:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6061:13:16"
+ },
+ "variables": [
+ {
+ "name": "elementValue0",
+ "nodeType": "YulTypedName",
+ "src": "6044:13:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6087:70:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "elementValue0",
+ "nodeType": "YulIdentifier",
+ "src": "6138:13:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6153:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "6094:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6094:63:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6087:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6170:70:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6233:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "6180:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6180:60:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcPtr",
+ "nodeType": "YulIdentifier",
+ "src": "6170:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "5988:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5991:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "5985:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5985:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "5999:18:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6001:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6010:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6013:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6006:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6006:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "6001:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "5970:14:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5972:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5981:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "5976:1:16",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "5966:284:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6259:10:16",
+ "value": {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6266:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "6259:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5646:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "5653:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "5662:3:16",
+ "type": ""
+ }
+ ],
+ "src": "5543:732:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6429:225:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6439:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6451:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6462:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6447:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6447:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6439:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6486:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6497:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6482:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6482:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6505:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6511:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6501:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6501:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6475:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6475:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6475:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6531:116:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6633:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6642:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6539:93:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6539:108:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6531:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6401:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6413:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6424:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6281:373:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6708:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6718:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6736:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6743:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6732:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6732:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6752:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "6748:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6748:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6728:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6728:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "6718:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6691:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "6701:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6660:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6796:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6813:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6816:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6806:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6806:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6806:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6910:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6913:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6903:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6903:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6903:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6934:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6937:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "6927:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6927:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6927:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6768:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6997:238:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7007:58:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7059:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "7037:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7037:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7025:40:16"
+ },
+ "variables": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulTypedName",
+ "src": "7011:10:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7176:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "7178:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7178:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7178:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7119:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7131:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7116:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7116:34:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7155:10:16"
+ },
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7167:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "7152:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7152:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "7113:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7113:62:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7110:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7214:2:16",
+ "type": "",
+ "value": "64"
+ },
+ {
+ "name": "newFreePtr",
+ "nodeType": "YulIdentifier",
+ "src": "7218:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7207:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7207:22:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7207:22:16"
+ }
+ ]
+ },
+ "name": "finalize_allocation",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "6983:6:16",
+ "type": ""
+ },
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "6991:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6954:281:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7282:88:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7292:30:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "allocate_unbounded",
+ "nodeType": "YulIdentifier",
+ "src": "7302:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7302:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7292:6:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "7351:6:16"
+ },
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7359:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "finalize_allocation",
+ "nodeType": "YulIdentifier",
+ "src": "7331:19:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7331:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7331:33:16"
+ }
+ ]
+ },
+ "name": "allocate_memory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "7266:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "7275:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7241:129:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7458:229:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7563:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "7565:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7565:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7565:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7535:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7543:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7532:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7529:56:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7595:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7607:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7615:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "7603:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7603:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7595:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7657:23:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7669:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7675:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7665:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7665:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "size",
+ "nodeType": "YulIdentifier",
+ "src": "7657:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "7442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "size",
+ "nodeType": "YulTypedName",
+ "src": "7453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "7376:311:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7812:608:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7822:90:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7904:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "7847:56:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7847:64:16"
+ }
+ ],
+ "functionName": {
+ "name": "allocate_memory",
+ "nodeType": "YulIdentifier",
+ "src": "7831:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7831:81:16"
+ },
+ "variableNames": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7822:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7921:16:16",
+ "value": {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7932:5:16"
+ },
+ "variables": [
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "7925:3:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7954:5:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7961:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7947:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7947:21:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7947:21:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7977:23:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "7988:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7995:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7984:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7984:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "7977:3:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8010:44:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8028:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "8040:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8048:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "8036:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8036:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8024:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8024:30:16"
+ },
+ "variables": [
+ {
+ "name": "srcEnd",
+ "nodeType": "YulTypedName",
+ "src": "8014:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8082:103:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
+ "nodeType": "YulIdentifier",
+ "src": "8096:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8096:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8096:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "srcEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8069:6:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8077:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "8066:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8066:15:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8063:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8270:144:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8285:21:16",
+ "value": {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8303:3:16"
+ },
+ "variables": [
+ {
+ "name": "elementPos",
+ "nodeType": "YulTypedName",
+ "src": "8289:10:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8327:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "elementPos",
+ "nodeType": "YulIdentifier",
+ "src": "8353:10:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8365:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "8332:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8332:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8320:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8320:50:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8320:50:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8383:21:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8394:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8399:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8390:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8390:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "8383:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8223:3:16"
+ },
+ {
+ "name": "srcEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8228:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "8220:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8220:15:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "8236:25:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8238:21:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8249:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8254:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8245:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8245:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "8238:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "8198:21:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8200:17:16",
+ "value": {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8211:6:16"
+ },
+ "variables": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "8204:3:16",
+ "type": ""
+ }
+ ]
+ }
+ ]
+ },
+ "src": "8194:220:16"
+ }
+ ]
+ },
+ "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7782:6:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "7790:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "7798:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "7806:5:16",
+ "type": ""
+ }
+ ],
+ "src": "7710:710:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8520:293:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8569:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
+ "nodeType": "YulIdentifier",
+ "src": "8571:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8571:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8571:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8548:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8556:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8544:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8544:17:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8563:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "8540:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8540:27:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8533:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8533:35:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8530:122:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8661:34:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8688:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "8675:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8675:20:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "8665:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8704:103:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "8780:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8788:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "8776:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8776:17:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "8795:6:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "8803:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "8713:62:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8713:94:16"
+ },
+ "variableNames": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "8704:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "8498:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "8506:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "8514:5:16",
+ "type": ""
+ }
+ ],
+ "src": "8443:370:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8944:704:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8990:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "8992:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8992:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8992:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "8965:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "8974:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8961:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8961:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8986:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "8957:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8957:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8954:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9083:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9098:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9112:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9102:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9127:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9162:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9173:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9158:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9158:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9182:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "9137:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9137:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9127:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9210:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9225:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9239:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9229:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9255:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9290:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9301:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9286:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9286:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9310:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9265:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9265:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "9255:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9338:303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "9353:46:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9384:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9395:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9380:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9380:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "9367:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9367:32:16"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9357:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9446:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulIdentifier",
+ "src": "9448:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9448:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9448:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9418:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9426:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "9415:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9415:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9412:117:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9543:88:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9603:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9614:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9599:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9599:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9623:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "9553:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9553:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "9543:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "8898:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "8909:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "8921:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "8929:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "8937:6:16",
+ "type": ""
+ }
+ ],
+ "src": "8819:829:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9719:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "9736:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9759:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "9741:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9741:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "9729:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9729:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9729:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9707:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "9714:3:16",
+ "type": ""
+ }
+ ],
+ "src": "9654:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9904:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9914:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9926:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9937:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9922:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9922:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9914:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9994:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10007:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10018:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10003:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10003:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9950:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9950:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9950:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10075:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10088:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10099:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10084:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10031:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10031:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10031:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9868:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "9880:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9888:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9899:4:16",
+ "type": ""
+ }
+ ],
+ "src": "9778:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10179:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10189:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "10198:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10198:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10189:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "10247:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "10220:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10220:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10220:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10157:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "10165:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "10173:5:16",
+ "type": ""
+ }
+ ],
+ "src": "10116:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10342:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10388:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "10390:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10390:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10390:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10363:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10372:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "10359:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10359:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10384:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "10355:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10355:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "10352:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "10481:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10496:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10500:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10525:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10571:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10582:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10567:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10567:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10591:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "10535:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10535:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10525:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10312:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "10323:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10335:6:16",
+ "type": ""
+ }
+ ],
+ "src": "10265:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10776:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10786:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10798:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10809:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10794:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10794:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10786:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10866:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10879:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10890:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10875:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10875:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10822:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10822:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10822:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10947:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10960:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10971:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10956:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10956:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10903:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10903:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10903:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "11029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11042:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11053:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11038:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11038:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10985:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10985:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10985:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10732:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "10744:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "10752:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10760:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "10771:4:16",
+ "type": ""
+ }
+ ],
+ "src": "10622:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11112:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11122:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11147:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11140:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11140:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11133:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11133:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "11122:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11094:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "11104:7:16",
+ "type": ""
+ }
+ ],
+ "src": "11070:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11206:76:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11260:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11269:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11272:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "11262:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11262:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11262:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11229:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11251:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "11236:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11236:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "11226:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11226:32:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "11219:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11219:40:16"
+ },
+ "nodeType": "YulIf",
+ "src": "11216:60:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11199:5:16",
+ "type": ""
+ }
+ ],
+ "src": "11166:116:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11348:77:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11358:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "11373:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "11367:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11367:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11358:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "11413:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "11389:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11389:30:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11389:30:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "11326:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "11334:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "11342:5:16",
+ "type": ""
+ }
+ ],
+ "src": "11288:137:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11505:271:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11551:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "11553:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11553:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11553:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "11526:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11535:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "11522:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11522:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11547:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "11518:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11518:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "11515:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "11644:125:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "11659:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11673:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "11663:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "11688:71:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11731:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "11742:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11727:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11727:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "11751:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "11698:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11698:61:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "11688:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11475:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "11486:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "11498:6:16",
+ "type": ""
+ }
+ ],
+ "src": "11431:345:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "11880:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "11890:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11902:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11913:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11898:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11898:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "11890:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "11970:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "11983:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "11994:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "11979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11979:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "11926:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "11926:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "11926:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "11852:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "11864:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "11875:4:16",
+ "type": ""
+ }
+ ],
+ "src": "11782:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12073:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "12083:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12098:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "12092:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12092:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "12083:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "12141:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "12114:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12114:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12114:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12051:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "12059:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "12067:5:16",
+ "type": ""
+ }
+ ],
+ "src": "12010:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12236:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12282:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "12284:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12284:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12284:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12257:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12266:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "12253:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12253:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12278:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "12249:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12249:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "12246:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "12375:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "12390:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12404:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12394:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "12419:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12465:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12461:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12461:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12485:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "12429:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12429:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "12419:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "12206:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "12217:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "12229:6:16",
+ "type": ""
+ }
+ ],
+ "src": "12159:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12544:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12561:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12564:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "12554:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12554:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12554:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12658:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12661:4:16",
+ "type": "",
+ "value": "0x32"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "12651:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12651:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12651:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12682:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12685:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "12675:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12675:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12675:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x32",
+ "nodeType": "YulFunctionDefinition",
+ "src": "12516:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12768:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "12814:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "12816:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12816:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "12816:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "12789:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12798:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "12785:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12785:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12810:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "12781:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12781:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "12778:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "12907:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "12922:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "12936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "12926:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "12951:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "12986:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "12997:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "12982:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12982:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "13006:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "12961:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "12961:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "12951:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "12738:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "12749:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "12761:6:16",
+ "type": ""
+ }
+ ],
+ "src": "12702:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13065:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13082:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13085:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13075:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13075:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13075:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13179:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13182:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13172:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13172:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13172:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13203:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13206:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "13196:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13196:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13196:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "13037:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13268:149:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "13278:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13301:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "13283:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13283:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13278:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13312:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13335:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "13317:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13317:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13312:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13346:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13358:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "13361:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "13354:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13354:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "13346:4:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13388:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "13390:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13390:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13390:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "13379:4:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "13385:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "13376:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13376:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "13373:37:16"
+ }
+ ]
+ },
+ "name": "checked_sub_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "13254:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "13257:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "diff",
+ "nodeType": "YulTypedName",
+ "src": "13263:4:16",
+ "type": ""
+ }
+ ],
+ "src": "13223:194:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13519:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13536:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "13541:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13529:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13529:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "13557:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13576:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13581:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13572:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13572:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "13557:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "13491:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "13496:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "13507:11:16",
+ "type": ""
+ }
+ ],
+ "src": "13423:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13704:74:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "13726:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "13734:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "13722:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13722:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e56414c49445f50415448",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "13738:32:16",
+ "type": "",
+ "value": "UniswapV2Library: INVALID_PATH"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "13715:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13715:56:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "13715:56:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "13696:6:16",
+ "type": ""
+ }
+ ],
+ "src": "13598:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "13930:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "13940:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14006:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14011:2:16",
+ "type": "",
+ "value": "30"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "13947:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "13947:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "13940:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14112:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222",
+ "nodeType": "YulIdentifier",
+ "src": "14023:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14023:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14023:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14125:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "14136:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14141:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14132:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14132:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "14125:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "13918:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "13926:3:16",
+ "type": ""
+ }
+ ],
+ "src": "13784:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14327:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "14337:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14349:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14360:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14345:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14345:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14337:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14384:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14395:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14380:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14380:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14403:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14409:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "14399:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14399:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "14373:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14373:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14373:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14429:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14563:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "14437:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14437:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "14429:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "14307:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "14322:4:16",
+ "type": ""
+ }
+ ],
+ "src": "14156:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14675:413:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "14721:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "14723:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14723:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "14723:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "14696:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14705:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "14692:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14692:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14717:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "14688:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14688:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "14685:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "14814:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "14829:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14843:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "14833:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14858:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "14904:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "14915:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "14900:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14900:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "14924:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "14868:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "14868:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "14858:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "14952:129:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "14967:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "14981:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "14971:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "14997:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15043:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "15054:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15039:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15039:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "15063:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "15007:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15007:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "14997:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "14637:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "14648:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "14660:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "14668:6:16",
+ "type": ""
+ }
+ ],
+ "src": "14581:507:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15138:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15148:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15171:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15153:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15153:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15148:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15182:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15205:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15187:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15187:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15182:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15216:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15227:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "15230:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15223:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15223:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "15216:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15256:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "15258:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15258:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15258:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "15248:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "15251:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "15245:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15245:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "15242:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "15125:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "15128:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "15134:3:16",
+ "type": ""
+ }
+ ],
+ "src": "15094:191:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15334:190:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15344:33:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15371:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "15353:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15353:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15344:5:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15467:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "15469:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15469:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15469:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15392:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15399:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "15389:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15389:77:16"
+ },
+ "nodeType": "YulIf",
+ "src": "15386:103:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "15498:20:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "15509:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15516:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15505:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15505:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "15498:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "increment_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "15320:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "15330:3:16",
+ "type": ""
+ }
+ ],
+ "src": "15291:233:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15558:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15575:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15578:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15568:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15568:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15568:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15672:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15675:4:16",
+ "type": "",
+ "value": "0x01"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "15665:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15665:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15665:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15696:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15699:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "15689:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15689:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15689:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x01",
+ "nodeType": "YulFunctionDefinition",
+ "src": "15530:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "15870:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "15880:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15892:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15903:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15888:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15888:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "15880:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "15960:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "15973:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "15984:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "15969:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15969:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15916:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15916:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15916:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "16041:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16054:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16065:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16050:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16050:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "15997:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "15997:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "15997:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "16123:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16136:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16147:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16132:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16132:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16079:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16079:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16079:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "15826:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "15838:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "15846:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "15854:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "15865:4:16",
+ "type": ""
+ }
+ ],
+ "src": "15716:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16270:124:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "16292:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16300:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16288:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f49",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "16304:34:16",
+ "type": "",
+ "value": "UniswapV2Library: INSUFFICIENT_I"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16281:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16281:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16281:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "16360:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16368:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16356:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16356:15:16"
+ },
+ {
+ "hexValue": "4e5055545f414d4f554e54",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "16373:13:16",
+ "type": "",
+ "value": "NPUT_AMOUNT"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16349:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16349:38:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16349:38:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "16262:6:16",
+ "type": ""
+ }
+ ],
+ "src": "16164:230:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16546:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16556:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16622:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16627:2:16",
+ "type": "",
+ "value": "43"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "16563:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16563:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16556:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16728:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae",
+ "nodeType": "YulIdentifier",
+ "src": "16639:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16639:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16639:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "16741:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "16752:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16757:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16748:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16748:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "16741:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "16534:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "16542:3:16",
+ "type": ""
+ }
+ ],
+ "src": "16400:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "16943:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "16953:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "16965:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "16976:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16961:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16961:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "16953:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17000:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17011:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "16996:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16996:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17019:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17025:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "17015:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17015:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "16989:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "16989:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "16989:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "17045:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17179:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "17053:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17053:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17045:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "16923:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "16938:4:16",
+ "type": ""
+ }
+ ],
+ "src": "16772:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17303:121:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "17325:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17333:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17321:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17321:14:16"
+ },
+ {
+ "hexValue": "556e697377617056324c6962726172793a20494e53554646494349454e545f4c",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "17337:34:16",
+ "type": "",
+ "value": "UniswapV2Library: INSUFFICIENT_L"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "17314:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17314:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17314:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "17393:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17401:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17389:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17389:15:16"
+ },
+ {
+ "hexValue": "4951554944495459",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "17406:10:16",
+ "type": "",
+ "value": "IQUIDITY"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "17382:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17382:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17382:35:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "17295:6:16",
+ "type": ""
+ }
+ ],
+ "src": "17197:227:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17576:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "17586:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17652:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17657:2:16",
+ "type": "",
+ "value": "40"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "17593:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17593:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17586:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17758:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8",
+ "nodeType": "YulIdentifier",
+ "src": "17669:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17669:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "17669:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "17771:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "17782:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "17787:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17778:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17778:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "17771:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "17564:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "17572:3:16",
+ "type": ""
+ }
+ ],
+ "src": "17430:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "17973:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "17983:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "17995:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18006:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "17991:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "17991:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "17983:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "18030:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18041:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "18026:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18026:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18049:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "18055:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "18045:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18045:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18019:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18019:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18019:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18075:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18209:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "18083:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18083:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "18075:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "17953:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "17968:4:16",
+ "type": ""
+ }
+ ],
+ "src": "17802:419:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18275:362:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "18285:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18308:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18290:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18290:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18285:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18319:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18342:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18324:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18324:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18319:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "18353:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18376:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18379:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "18372:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18372:9:16"
+ },
+ "variables": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulTypedName",
+ "src": "18357:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18390:41:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulIdentifier",
+ "src": "18419:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18401:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18401:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "18390:7:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18608:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "18610:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18610:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18610:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18541:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18534:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18534:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18564:1:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "18571:7:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18580:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "18567:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18567:15:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "18561:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18561:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "18514:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18514:83:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18494:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18494:113:16"
+ },
+ "nodeType": "YulIf",
+ "src": "18491:139:16"
+ }
+ ]
+ },
+ "name": "checked_mul_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "18258:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "18261:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "product",
+ "nodeType": "YulTypedName",
+ "src": "18267:7:16",
+ "type": ""
+ }
+ ],
+ "src": "18227:410:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18671:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18688:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18691:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18681:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18681:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18681:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18785:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18788:4:16",
+ "type": "",
+ "value": "0x12"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "18778:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18778:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18778:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18809:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "18812:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "18802:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18802:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18802:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x12",
+ "nodeType": "YulFunctionDefinition",
+ "src": "18643:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18871:143:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "18881:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18904:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18886:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18886:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "18881:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18915:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18938:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "18920:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18920:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18915:1:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "18962:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x12",
+ "nodeType": "YulIdentifier",
+ "src": "18964:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18964:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "18964:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "18959:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "18952:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18952:9:16"
+ },
+ "nodeType": "YulIf",
+ "src": "18949:35:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "18994:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "19003:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "19006:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "18999:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "18999:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nodeType": "YulIdentifier",
+ "src": "18994:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checked_div_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "18860:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "18863:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "r",
+ "nodeType": "YulTypedName",
+ "src": "18869:1:16",
+ "type": ""
+ }
+ ],
+ "src": "18829:185:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19126:122:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "19148:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19156:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19144:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19144:14:16"
+ },
+ {
+ "hexValue": "556e69737761705632446566694c6962726172793a20494e5355464649434945",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "19160:34:16",
+ "type": "",
+ "value": "UniswapV2DefiLibrary: INSUFFICIE"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19137:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19137:58:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19137:58:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "19216:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19224:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19212:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19212:15:16"
+ },
+ {
+ "hexValue": "4e545f414d4f554e54",
+ "kind": "string",
+ "nodeType": "YulLiteral",
+ "src": "19229:11:16",
+ "type": "",
+ "value": "NT_AMOUNT"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19205:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19205:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19205:36:16"
+ }
+ ]
+ },
+ "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "19118:6:16",
+ "type": ""
+ }
+ ],
+ "src": "19020:228:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19400:220:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "19410:74:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19476:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19481:2:16",
+ "type": "",
+ "value": "41"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "19417:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19417:67:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19410:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19582:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44",
+ "nodeType": "YulIdentifier",
+ "src": "19493:88:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19493:93:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19493:93:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "19595:19:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "19606:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19611:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19602:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "19595:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "19388:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "19396:3:16",
+ "type": ""
+ }
+ ],
+ "src": "19254:366:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "19797:248:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "19807:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19819:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19830:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19815:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19815:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19807:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19854:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "19865:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "19850:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19850:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19873:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "19879:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "19869:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19869:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "19843:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19843:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "19843:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "19899:139:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "20033:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "19907:124:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "19907:131:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "19899:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "19777:9:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "19792:4:16",
+ "type": ""
+ }
+ ],
+ "src": "19626:419:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2, value3 := abi_decode_t_array$_t_address_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let srcEnd := add(offset, mul(length, 0x20))\n if gt(srcEnd, end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let src := offset } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n\n let elementPos := src\n\n mstore(dst, abi_decode_t_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_array$_t_address_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INVALID_PATH\")\n\n }\n\n function abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_75377551ce0fccd63c5f6648306f9f916607f3ae50cffb38430d29ad981b8222_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x01() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_address__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_address_to_t_address_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_I\")\n\n mstore(add(memPtr, 32), \"NPUT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 43)\n store_literal_in_memory_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ec21b006eb37ef20d0f4abcabd34de6854fa68af48294244e0263dc05c1dbbae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2Library: INSUFFICIENT_L\")\n\n mstore(add(memPtr, 32), \"IQUIDITY\")\n\n }\n\n function abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 40)\n store_literal_in_memory_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7e8d6b265173dbbd87b3b9e2bf4238bea6caf2b2bbeb63f859a738aec9e761c8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(memPtr) {\n\n mstore(add(memPtr, 0), \"UniswapV2DefiLibrary: INSUFFICIE\")\n\n mstore(add(memPtr, 32), \"NT_AMOUNT\")\n\n }\n\n function abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 41)\n store_literal_in_memory_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e3ff69aad7fe0c3beafd58e3ce9040d091752003cd638268f69a385ead381b44_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {
+ "1034": [
+ {
+ "length": 32,
+ "start": 247
+ },
+ {
+ "length": 32,
+ "start": 808
+ },
+ {
+ "length": 32,
+ "start": 1940
+ },
+ {
+ "length": 32,
+ "start": 2152
+ }
+ ]
+ },
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x3351733F EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x86818F26 EQ PUSH2 0x78 JUMPI DUP1 PUSH4 0xBB7B9C76 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0xF5E JUMP JUMPDEST PUSH2 0xD8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFFA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x92 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8D SWAP2 SWAP1 PUSH2 0x1096 JUMP JUMPDEST PUSH2 0x322 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x9F SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBD SWAP2 SWAP1 PUSH2 0x1339 JUMP JUMPDEST PUSH2 0x5DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xCF SWAP2 SWAP1 PUSH2 0x11C8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xEB DUP10 DUP10 DUP10 DUP10 DUP10 DUP10 PUSH2 0x78D JUMP JUMPDEST DUP1 SWAP4 POP DUP2 SWAP5 POP POP POP PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP12 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x150 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x16F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x193 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP8 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x215 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP7 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x253 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x272 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x296 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6A627842 CALLER PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D0 SWAP2 SWAP1 PUSH2 0x14BE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2EF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x313 SWAP2 SWAP1 PUSH2 0x14EE JUMP JUMPDEST SWAP2 POP POP SWAP7 POP SWAP7 POP SWAP7 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP6 DUP6 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x376 JUMPI PUSH2 0x375 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x38B SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST DUP7 DUP7 PUSH1 0x1 DUP2 DUP2 LT PUSH2 0x39F JUMPI PUSH2 0x39E PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x3B4 SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3F0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x414 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH2 0x462 DUP2 DUP8 DUP7 DUP7 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP PUSH2 0x5DF JUMP JUMPDEST SWAP2 POP DUP5 DUP3 PUSH1 0x1 DUP5 MLOAD PUSH2 0x474 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x485 JUMPI PUSH2 0x484 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD LT ISZERO PUSH2 0x4C5 JUMPI PUSH1 0x40 MLOAD PUSH32 0xDEC0FBBE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 DUP4 PUSH1 0x0 DUP2 DUP2 LT PUSH2 0x4D9 JUMPI PUSH2 0x4D8 PUSH2 0x151B JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x4EE SWAP2 SWAP1 PUSH2 0x154A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x23B872DD CALLER DUP4 DUP6 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x51F JUMPI PUSH2 0x51E PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x545 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1422 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x564 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1491 JUMP JUMPDEST POP PUSH2 0x5D6 DUP3 DUP6 DUP6 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 DUP2 DUP5 ADD MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND SWAP1 POP DUP1 DUP4 ADD SWAP3 POP POP POP POP POP POP POP DUP4 CALLER PUSH2 0xA75 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP3 MLOAD LT ISZERO PUSH2 0x626 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x61D SWAP1 PUSH2 0x1637 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x641 JUMPI PUSH2 0x640 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x66F JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x687 JUMPI PUSH2 0x686 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH2 0x6A4 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x785 JUMPI PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x6F8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x71C SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x745 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x736 JUMPI PUSH2 0x735 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP4 DUP4 PUSH2 0xBFF JUMP JUMPDEST DUP5 PUSH1 0x1 DUP6 PUSH2 0x753 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x764 JUMPI PUSH2 0x763 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP POP POP DUP1 DUP1 PUSH2 0x77D SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0x696 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x4A70F02E DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7ED SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x80C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x907 JUMPI PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE3433615 DUP11 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C1 SWAP3 SWAP2 SWAP1 PUSH2 0x13B7 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x8E0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x904 SWAP2 SWAP1 PUSH2 0x13F5 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xB9CF5005 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x954 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x978 SWAP2 SWAP1 PUSH2 0x1657 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 DUP3 EQ DUP1 ISZERO PUSH2 0x98C JUMPI POP PUSH1 0x0 DUP2 EQ JUMPDEST ISZERO PUSH2 0x9A0 JUMPI DUP9 DUP9 DUP1 SWAP6 POP DUP2 SWAP7 POP POP POP PUSH2 0xA67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AD DUP11 DUP5 DUP5 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP9 DUP2 GT PUSH2 0x9FF JUMPI DUP7 DUP2 LT ISZERO PUSH2 0x9F0 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 DUP2 DUP1 SWAP7 POP DUP2 SWAP8 POP POP POP PUSH2 0xA65 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA0C DUP11 DUP5 DUP7 PUSH2 0xCE9 JUMP JUMPDEST SWAP1 POP DUP11 DUP2 GT ISZERO PUSH2 0xA1F JUMPI PUSH2 0xA1E PUSH2 0x1713 JUMP JUMPDEST JUMPDEST DUP9 DUP2 LT ISZERO PUSH2 0xA59 JUMPI PUSH1 0x40 MLOAD PUSH32 0xD036864900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP11 DUP1 SWAP8 POP DUP2 SWAP9 POP POP POP POP JUMPDEST POP JUMPDEST POP POP POP SWAP7 POP SWAP7 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x1 DUP5 MLOAD PUSH2 0xA86 SWAP2 SWAP1 PUSH2 0x15A6 JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xBF8 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0xAA3 JUMPI PUSH2 0xAA2 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP7 PUSH1 0x1 DUP6 PUSH2 0xAB9 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xACA JUMPI PUSH2 0xAC9 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH2 0xAE2 DUP4 DUP4 PUSH2 0xD9C JUMP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP9 PUSH1 0x1 DUP7 PUSH2 0xAF5 SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xB06 JUMPI PUSH2 0xB05 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP1 POP PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xB4E JUMPI PUSH1 0x0 DUP4 PUSH2 0xB52 JUMP JUMPDEST DUP3 PUSH1 0x0 JUMPDEST SWAP2 POP SWAP2 POP DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x6D9A640A DUP5 DUP14 DUP11 DUP2 MLOAD DUP2 LT PUSH2 0xB86 JUMPI PUSH2 0xB85 PUSH2 0x151B JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP12 PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBAD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1742 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xBDB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP DUP1 DUP1 PUSH2 0xBF0 SWAP1 PUSH2 0x16CB JUMP JUMPDEST SWAP2 POP POP PUSH2 0xA78 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xC43 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC3A SWAP1 PUSH2 0x17EB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xC53 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xC92 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC89 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E5 DUP6 PUSH2 0xCA2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP4 DUP3 PUSH2 0xCB2 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH2 0x3E8 DUP8 PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xCCF SWAP2 SWAP1 PUSH2 0x1697 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 PUSH2 0xCDD SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP4 POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP5 GT PUSH2 0xD2D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD24 SWAP1 PUSH2 0x19B1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 GT DUP1 ISZERO PUSH2 0xD3D JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST PUSH2 0xD7C JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD73 SWAP1 PUSH2 0x187D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 DUP6 PUSH2 0xD89 SWAP2 SWAP1 PUSH2 0x189D JUMP JUMPDEST PUSH2 0xD93 SWAP2 SWAP1 PUSH2 0x190E JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE04 JUMPI PUSH1 0x40 MLOAD PUSH32 0x4BEA99D900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND LT PUSH2 0xE3E JUMPI DUP3 DUP5 PUSH2 0xE41 JUMP JUMPDEST DUP4 DUP4 JUMPDEST DUP1 SWAP3 POP DUP2 SWAP4 POP POP POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xEAF JUMPI PUSH1 0x40 MLOAD PUSH32 0x74B959E900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEF5 DUP3 PUSH2 0xECA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF05 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP2 EQ PUSH2 0xF10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF22 DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF3B DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP2 EQ PUSH2 0xF46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF58 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xF7B JUMPI PUSH2 0xF7A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xF89 DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP7 POP POP PUSH1 0x20 PUSH2 0xF9A DUP10 DUP3 DUP11 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x40 PUSH2 0xFAB DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x60 PUSH2 0xFBC DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH2 0xFCD DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0xA0 PUSH2 0xFDE DUP10 DUP3 DUP11 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH2 0xFF4 DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x100F PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x101C PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1029 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x1056 JUMPI PUSH2 0x1055 PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1073 JUMPI PUSH2 0x1072 PUSH2 0x1036 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x108F JUMPI PUSH2 0x108E PUSH2 0x103B JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x10B0 JUMPI PUSH2 0x10AF PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x10BE DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x10CF DUP8 DUP3 DUP9 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10F0 JUMPI PUSH2 0x10EF PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x10FC DUP8 DUP3 DUP9 ADD PUSH2 0x1040 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x113F DUP2 PUSH2 0xF28 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1151 DUP4 DUP4 PUSH2 0x1136 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1175 DUP3 PUSH2 0x110A JUMP JUMPDEST PUSH2 0x117F DUP2 DUP6 PUSH2 0x1115 JUMP JUMPDEST SWAP4 POP PUSH2 0x118A DUP4 PUSH2 0x1126 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x11BB JUMPI DUP2 MLOAD PUSH2 0x11A2 DUP9 DUP3 PUSH2 0x1145 JUMP JUMPDEST SWAP8 POP PUSH2 0x11AD DUP4 PUSH2 0x115D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x118E JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x11E2 DUP2 DUP5 PUSH2 0x116A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1233 DUP3 PUSH2 0x11EA JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1252 JUMPI PUSH2 0x1251 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1265 PUSH2 0xEB6 JUMP JUMPDEST SWAP1 POP PUSH2 0x1271 DUP3 DUP3 PUSH2 0x122A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1291 JUMPI PUSH2 0x1290 PUSH2 0x11FB JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12B5 PUSH2 0x12B0 DUP5 PUSH2 0x1276 JUMP JUMPDEST PUSH2 0x125B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x20 DUP5 MUL DUP4 ADD DUP6 DUP2 GT ISZERO PUSH2 0x12D8 JUMPI PUSH2 0x12D7 PUSH2 0x103B JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1301 JUMPI DUP1 PUSH2 0x12ED DUP9 DUP3 PUSH2 0xF13 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12DA JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1320 JUMPI PUSH2 0x131F PUSH2 0x1031 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1330 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x12A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1352 JUMPI PUSH2 0x1351 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1360 DUP7 DUP3 DUP8 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1371 DUP7 DUP3 DUP8 ADD PUSH2 0xF49 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1392 JUMPI PUSH2 0x1391 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0x139E DUP7 DUP3 DUP8 ADD PUSH2 0x130B JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x13B1 DUP2 PUSH2 0xEEA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x13CC PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x13D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x13EF DUP2 PUSH2 0xEFC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x140B JUMPI PUSH2 0x140A PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1419 DUP5 DUP3 DUP6 ADD PUSH2 0x13E0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1437 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1444 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x1451 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xFEB JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146E DUP2 PUSH2 0x1459 JUMP JUMPDEST DUP2 EQ PUSH2 0x1479 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x148B DUP2 PUSH2 0x1465 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14A7 JUMPI PUSH2 0x14A6 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x14B5 DUP5 DUP3 DUP6 ADD PUSH2 0x147C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x14D3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x14E8 DUP2 PUSH2 0xF32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1504 JUMPI PUSH2 0x1503 PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1512 DUP5 DUP3 DUP6 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1560 JUMPI PUSH2 0x155F PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x156E DUP5 DUP3 DUP6 ADD PUSH2 0xF13 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x15B1 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x15BC DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x15D4 JUMPI PUSH2 0x15D3 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E56414C49445F504154480000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1621 PUSH1 0x1E DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x162C DUP3 PUSH2 0x15EB JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1650 DUP2 PUSH2 0x1614 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0xEC0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x167C DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x168D DUP6 DUP3 DUP7 ADD PUSH2 0x14D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16A2 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x16AD DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x16C5 JUMPI PUSH2 0x16C4 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16D6 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x1708 JUMPI PUSH2 0x1707 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1757 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1764 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xFEB JUMP JUMPDEST PUSH2 0x1771 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x13A8 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F49 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E5055545F414D4F554E54000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17D5 PUSH1 0x2B DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x17E0 DUP3 PUSH2 0x1779 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1804 DUP2 PUSH2 0x17C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x556E697377617056324C6962726172793A20494E53554646494349454E545F4C PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4951554944495459000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1867 PUSH1 0x28 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x1872 DUP3 PUSH2 0x180B JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1896 DUP2 PUSH2 0x185A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A8 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x18B3 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x18C1 DUP2 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x18D8 JUMPI PUSH2 0x18D7 PUSH2 0x1577 JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1919 DUP3 PUSH2 0xF28 JUMP JUMPDEST SWAP2 POP PUSH2 0x1924 DUP4 PUSH2 0xF28 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1934 JUMPI PUSH2 0x1933 PUSH2 0x18DF JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x556E69737761705632446566694C6962726172793A20494E5355464649434945 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x4E545F414D4F554E540000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x199B PUSH1 0x29 DUP4 PUSH2 0x15DA JUMP JUMPDEST SWAP2 POP PUSH2 0x19A6 DUP3 PUSH2 0x193F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x19CA DUP2 PUSH2 0x198E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 SLOAD SWAP13 SWAP2 CALLER 0x28 0xFC EXTCODEHASH SHL 0xFB PUSH23 0xEA0BCA2A71F2396795569E18D87D12DF86092A52AE6473 PUSH16 0x6C634300081400330000000000000000 ",
+ "sourceMap": "471:5908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2417:773;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;4655:636;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:606;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2417:773;2650:15;2667;2684:17;2735:186;2763:6;2784;2805:21;2841;2877:9;2901;2735:13;:186::i;:::-;2714:207;;;;;;;;2932:12;2956:14;2947:38;;;2986:6;2994;2947:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:69;;3019:6;3012:27;;;3040:10;3052:4;3058:7;3012:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3084:6;3077:27;;;3105:10;3117:4;3123:7;3077:54;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3160:4;3154:16;;;3171:10;3154:28;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:40;;2703:487;2417:773;;;;;;;;;;:::o;4655:636::-;4861:21;4910:12;4934:14;4925:38;;;4964:4;;4969:1;4964:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4973:4;;4978:1;4973:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4925:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4910:71;;5004:35;5018:4;5024:8;5034:4;;5004:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:35::i;:::-;4994:45;;5084:12;5054:7;5079:1;5062:7;:14;:18;;;;:::i;:::-;5054:27;;;;;;;;:::i;:::-;;;;;;;;:42;5050:113;;;5118:45;;;;;;;;;;;;;;5050:113;5183:4;;5188:1;5183:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5176:28;;;5205:10;5217:4;5223:7;5231:1;5223:10;;;;;;;;:::i;:::-;;;;;;;;5176:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5245:38;5251:7;5260:4;;5245:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5266:4;5272:10;5245:5;:38::i;:::-;4899:392;4655:636;;;;;;:::o;5770:606::-;5900:21;5957:1;5942:4;:11;:16;;5934:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6025:4;:11;6014:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6004:33;;6061:8;6048:7;6056:1;6048:10;;;;;;;;:::i;:::-;;;;;;;:21;;;;;6085:6;6080:289;6111:1;6097:4;:11;:15;;;;:::i;:::-;6093:1;:19;6080:289;;;6135:14;6151:15;6176:4;6170:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6134:66;;;;6232:125;6275:7;6283:1;6275:10;;;;;;;;:::i;:::-;;;;;;;;6304:9;6332:10;6232:24;:125::i;:::-;6215:7;6227:1;6223;:5;;;;:::i;:::-;6215:14;;;;;;;;:::i;:::-;;;;;;;:142;;;;;6119:250;;6114:3;;;;;:::i;:::-;;;;6080:289;;;;5770:606;;;;;:::o;725:1684::-;961:15;978;1006:12;1030:14;1021:38;;;1060:7;1069;1021:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1006:71;;1108:1;1092:18;;:4;:18;;;1088:97;;1141:14;1132:35;;;1168:7;1177;1132:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1125:60;;1088:97;1199:16;1217;1243:4;1237:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1198:69;;;;1296:1;1284:8;:13;:30;;;;;1313:1;1301:8;:13;1284:30;1280:1122;;;1353:21;1376;1331:67;;;;;;;;1280:1122;;;1431:29;1463:114;1487:21;1527:8;1554;1463:5;:114::i;:::-;1431:146;;1621:21;1596;:46;1592:799;;1691:9;1667:21;:33;1663:106;;;1730:39;;;;;;;;;;;;;;1663:106;1832:21;1876;1788:128;;;;;;;;1592:799;;;1957:22;1982:130;2010:21;2054:8;2085;1982:5;:130::i;:::-;1957:155;;2156:21;2138:14;:39;;2131:47;;;;:::i;:::-;;2218:9;2201:14;:26;2197:99;;;2257:39;;;;;;;;;;;;;;2197:99;2337:14;2353:21;2315:60;;;;;;;;1938:453;1592:799;1416:986;1280:1122;995:1414;;;725:1684;;;;;;;;;:::o;3972:675::-;4132:6;4127:513;4158:1;4144:4;:11;:15;;;;:::i;:::-;4140:1;:19;4127:513;;;4182:13;4197:14;4216:4;4221:1;4216:7;;;;;;;;:::i;:::-;;;;;;;;4225:4;4234:1;4230;:5;;;;:::i;:::-;4225:11;;;;;;;;:::i;:::-;;;;;;;;4181:56;;;;4253:14;4273:37;4296:5;4303:6;4273:22;:37::i;:::-;4252:58;;;4325:17;4345:7;4357:1;4353;:5;;;;:::i;:::-;4345:14;;;;;;;;:::i;:::-;;;;;;;;4325:34;;4375:18;4395;4426:6;4417:15;;:5;:15;;;:101;;4504:1;4508:9;4417:101;;;4453:9;4472:1;4417:101;4374:144;;;;4589:5;4583:17;;;4601:9;4612:7;4620:1;4612:10;;;;;;;;:::i;:::-;;;;;;;;4624:3;4583:45;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:474;;;;;;4161:3;;;;;:::i;:::-;;;;4127:513;;;;3972:675;;;;:::o;934:580:12:-;1061:14;1107:1;1096:8;:12;1088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1189:9;:13;:31;;;;;1219:1;1206:10;:14;1189:31;1167:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;1299:20;1333:3;1322:8;:14;;;;:::i;:::-;1299:37;;1347:14;1382:10;1364:15;:28;;;;:::i;:::-;1347:45;;1403:16;1444:15;1435:4;1423:9;:16;;;;:::i;:::-;1422:38;;;;:::i;:::-;1403:57;;1495:11;1483:9;:23;;;;:::i;:::-;1471:35;;1077:437;;;934:580;;;;;:::o;5299:395:6:-;5415:12;5458:1;5448:7;:11;5440:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;5549:1;5538:8;:12;:28;;;;;5565:1;5554:8;:12;5538:28;5516:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;5678:8;5666;5656:7;:18;;;;:::i;:::-;5655:31;;;;:::i;:::-;5645:41;;5299:395;;;;;:::o;265:473:12:-;365:14;381;422:6;412:16;;:6;:16;;;408:60;;437:31;;;;;;;;;;;;;;408:60;507:6;498:15;;:6;:15;;;:79;;562:6;570;498:79;;;530:6;538;498:79;479:98;;;;;;;;693:1;675:20;;:6;:20;;;671:59;;704:26;;;;;;;;;;;;;;671:59;265:473;;;;;:::o;7:75:16:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:1057::-;1301:6;1309;1317;1325;1333;1341;1390:3;1378:9;1369:7;1365:23;1361:33;1358:120;;;1397:79;;:::i;:::-;1358:120;1517:1;1542:53;1587:7;1578:6;1567:9;1563:22;1542:53;:::i;:::-;1532:63;;1488:117;1644:2;1670:53;1715:7;1706:6;1695:9;1691:22;1670:53;:::i;:::-;1660:63;;1615:118;1772:2;1798:53;1843:7;1834:6;1823:9;1819:22;1798:53;:::i;:::-;1788:63;;1743:118;1900:2;1926:53;1971:7;1962:6;1951:9;1947:22;1926:53;:::i;:::-;1916:63;;1871:118;2028:3;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;:::i;:::-;2045:63;;1999:119;2157:3;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2128:119;1197:1057;;;;;;;;:::o;2260:118::-;2347:24;2365:5;2347:24;:::i;:::-;2342:3;2335:37;2260:118;;:::o;2384:442::-;2533:4;2571:2;2560:9;2556:18;2548:26;;2584:71;2652:1;2641:9;2637:17;2628:6;2584:71;:::i;:::-;2665:72;2733:2;2722:9;2718:18;2709:6;2665:72;:::i;:::-;2747;2815:2;2804:9;2800:18;2791:6;2747:72;:::i;:::-;2384:442;;;;;;:::o;2832:117::-;2941:1;2938;2931:12;2955:117;3064:1;3061;3054:12;3078:117;3187:1;3184;3177:12;3218:568;3291:8;3301:6;3351:3;3344:4;3336:6;3332:17;3328:27;3318:122;;3359:79;;:::i;:::-;3318:122;3472:6;3459:20;3449:30;;3502:18;3494:6;3491:30;3488:117;;;3524:79;;:::i;:::-;3488:117;3638:4;3630:6;3626:17;3614:29;;3692:3;3684:4;3676:6;3672:17;3662:8;3658:32;3655:41;3652:128;;;3699:79;;:::i;:::-;3652:128;3218:568;;;;;:::o;3792:849::-;3896:6;3904;3912;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:53;4293:7;4284:6;4273:9;4269:22;4248:53;:::i;:::-;4238:63;;4193:118;4378:2;4367:9;4363:18;4350:32;4409:18;4401:6;4398:30;4395:117;;;4431:79;;:::i;:::-;4395:117;4544:80;4616:7;4607:6;4596:9;4592:22;4544:80;:::i;:::-;4526:98;;;;4321:313;3792:849;;;;;;;:::o;4647:114::-;4714:6;4748:5;4742:12;4732:22;;4647:114;;;:::o;4767:184::-;4866:11;4900:6;4895:3;4888:19;4940:4;4935:3;4931:14;4916:29;;4767:184;;;;:::o;4957:132::-;5024:4;5047:3;5039:11;;5077:4;5072:3;5068:14;5060:22;;4957:132;;;:::o;5095:108::-;5172:24;5190:5;5172:24;:::i;:::-;5167:3;5160:37;5095:108;;:::o;5209:179::-;5278:10;5299:46;5341:3;5333:6;5299:46;:::i;:::-;5377:4;5372:3;5368:14;5354:28;;5209:179;;;;:::o;5394:113::-;5464:4;5496;5491:3;5487:14;5479:22;;5394:113;;;:::o;5543:732::-;5662:3;5691:54;5739:5;5691:54;:::i;:::-;5761:86;5840:6;5835:3;5761:86;:::i;:::-;5754:93;;5871:56;5921:5;5871:56;:::i;:::-;5950:7;5981:1;5966:284;5991:6;5988:1;5985:13;5966:284;;;6067:6;6061:13;6094:63;6153:3;6138:13;6094:63;:::i;:::-;6087:70;;6180:60;6233:6;6180:60;:::i;:::-;6170:70;;6026:224;6013:1;6010;6006:9;6001:14;;5966:284;;;5970:14;6266:3;6259:10;;5667:608;;;5543:732;;;;:::o;6281:373::-;6424:4;6462:2;6451:9;6447:18;6439:26;;6511:9;6505:4;6501:20;6497:1;6486:9;6482:17;6475:47;6539:108;6642:4;6633:6;6539:108;:::i;:::-;6531:116;;6281:373;;;;:::o;6660:102::-;6701:6;6752:2;6748:7;6743:2;6736:5;6732:14;6728:28;6718:38;;6660:102;;;:::o;6768:180::-;6816:77;6813:1;6806:88;6913:4;6910:1;6903:15;6937:4;6934:1;6927:15;6954:281;7037:27;7059:4;7037:27;:::i;:::-;7029:6;7025:40;7167:6;7155:10;7152:22;7131:18;7119:10;7116:34;7113:62;7110:88;;;7178:18;;:::i;:::-;7110:88;7218:10;7214:2;7207:22;6997:238;6954:281;;:::o;7241:129::-;7275:6;7302:20;;:::i;:::-;7292:30;;7331:33;7359:4;7351:6;7331:33;:::i;:::-;7241:129;;;:::o;7376:311::-;7453:4;7543:18;7535:6;7532:30;7529:56;;;7565:18;;:::i;:::-;7529:56;7615:4;7607:6;7603:17;7595:25;;7675:4;7669;7665:15;7657:23;;7376:311;;;:::o;7710:710::-;7806:5;7831:81;7847:64;7904:6;7847:64;:::i;:::-;7831:81;:::i;:::-;7822:90;;7932:5;7961:6;7954:5;7947:21;7995:4;7988:5;7984:16;7977:23;;8048:4;8040:6;8036:17;8028:6;8024:30;8077:3;8069:6;8066:15;8063:122;;;8096:79;;:::i;:::-;8063:122;8211:6;8194:220;8228:6;8223:3;8220:15;8194:220;;;8303:3;8332:37;8365:3;8353:10;8332:37;:::i;:::-;8327:3;8320:50;8399:4;8394:3;8390:14;8383:21;;8270:144;8254:4;8249:3;8245:14;8238:21;;8194:220;;;8198:21;7812:608;;7710:710;;;;;:::o;8443:370::-;8514:5;8563:3;8556:4;8548:6;8544:17;8540:27;8530:122;;8571:79;;:::i;:::-;8530:122;8688:6;8675:20;8713:94;8803:3;8795:6;8788:4;8780:6;8776:17;8713:94;:::i;:::-;8704:103;;8520:293;8443:370;;;;:::o;8819:829::-;8921:6;8929;8937;8986:2;8974:9;8965:7;8961:23;8957:32;8954:119;;;8992:79;;:::i;:::-;8954:119;9112:1;9137:53;9182:7;9173:6;9162:9;9158:22;9137:53;:::i;:::-;9127:63;;9083:117;9239:2;9265:53;9310:7;9301:6;9290:9;9286:22;9265:53;:::i;:::-;9255:63;;9210:118;9395:2;9384:9;9380:18;9367:32;9426:18;9418:6;9415:30;9412:117;;;9448:79;;:::i;:::-;9412:117;9553:78;9623:7;9614:6;9603:9;9599:22;9553:78;:::i;:::-;9543:88;;9338:303;8819:829;;;;;:::o;9654:118::-;9741:24;9759:5;9741:24;:::i;:::-;9736:3;9729:37;9654:118;;:::o;9778:332::-;9899:4;9937:2;9926:9;9922:18;9914:26;;9950:71;10018:1;10007:9;10003:17;9994:6;9950:71;:::i;:::-;10031:72;10099:2;10088:9;10084:18;10075:6;10031:72;:::i;:::-;9778:332;;;;;:::o;10116:143::-;10173:5;10204:6;10198:13;10189:22;;10220:33;10247:5;10220:33;:::i;:::-;10116:143;;;;:::o;10265:351::-;10335:6;10384:2;10372:9;10363:7;10359:23;10355:32;10352:119;;;10390:79;;:::i;:::-;10352:119;10510:1;10535:64;10591:7;10582:6;10571:9;10567:22;10535:64;:::i;:::-;10525:74;;10481:128;10265:351;;;;:::o;10622:442::-;10771:4;10809:2;10798:9;10794:18;10786:26;;10822:71;10890:1;10879:9;10875:17;10866:6;10822:71;:::i;:::-;10903:72;10971:2;10960:9;10956:18;10947:6;10903:72;:::i;:::-;10985;11053:2;11042:9;11038:18;11029:6;10985:72;:::i;:::-;10622:442;;;;;;:::o;11070:90::-;11104:7;11147:5;11140:13;11133:21;11122:32;;11070:90;;;:::o;11166:116::-;11236:21;11251:5;11236:21;:::i;:::-;11229:5;11226:32;11216:60;;11272:1;11269;11262:12;11216:60;11166:116;:::o;11288:137::-;11342:5;11373:6;11367:13;11358:22;;11389:30;11413:5;11389:30;:::i;:::-;11288:137;;;;:::o;11431:345::-;11498:6;11547:2;11535:9;11526:7;11522:23;11518:32;11515:119;;;11553:79;;:::i;:::-;11515:119;11673:1;11698:61;11751:7;11742:6;11731:9;11727:22;11698:61;:::i;:::-;11688:71;;11644:125;11431:345;;;;:::o;11782:222::-;11875:4;11913:2;11902:9;11898:18;11890:26;;11926:71;11994:1;11983:9;11979:17;11970:6;11926:71;:::i;:::-;11782:222;;;;:::o;12010:143::-;12067:5;12098:6;12092:13;12083:22;;12114:33;12141:5;12114:33;:::i;:::-;12010:143;;;;:::o;12159:351::-;12229:6;12278:2;12266:9;12257:7;12253:23;12249:32;12246:119;;;12284:79;;:::i;:::-;12246:119;12404:1;12429:64;12485:7;12476:6;12465:9;12461:22;12429:64;:::i;:::-;12419:74;;12375:128;12159:351;;;;:::o;12516:180::-;12564:77;12561:1;12554:88;12661:4;12658:1;12651:15;12685:4;12682:1;12675:15;12702:329;12761:6;12810:2;12798:9;12789:7;12785:23;12781:32;12778:119;;;12816:79;;:::i;:::-;12778:119;12936:1;12961:53;13006:7;12997:6;12986:9;12982:22;12961:53;:::i;:::-;12951:63;;12907:117;12702:329;;;;:::o;13037:180::-;13085:77;13082:1;13075:88;13182:4;13179:1;13172:15;13206:4;13203:1;13196:15;13223:194;13263:4;13283:20;13301:1;13283:20;:::i;:::-;13278:25;;13317:20;13335:1;13317:20;:::i;:::-;13312:25;;13361:1;13358;13354:9;13346:17;;13385:1;13379:4;13376:11;13373:37;;;13390:18;;:::i;:::-;13373:37;13223:194;;;;:::o;13423:169::-;13507:11;13541:6;13536:3;13529:19;13581:4;13576:3;13572:14;13557:29;;13423:169;;;;:::o;13598:180::-;13738:32;13734:1;13726:6;13722:14;13715:56;13598:180;:::o;13784:366::-;13926:3;13947:67;14011:2;14006:3;13947:67;:::i;:::-;13940:74;;14023:93;14112:3;14023:93;:::i;:::-;14141:2;14136:3;14132:12;14125:19;;13784:366;;;:::o;14156:419::-;14322:4;14360:2;14349:9;14345:18;14337:26;;14409:9;14403:4;14399:20;14395:1;14384:9;14380:17;14373:47;14437:131;14563:4;14437:131;:::i;:::-;14429:139;;14156:419;;;:::o;14581:507::-;14660:6;14668;14717:2;14705:9;14696:7;14692:23;14688:32;14685:119;;;14723:79;;:::i;:::-;14685:119;14843:1;14868:64;14924:7;14915:6;14904:9;14900:22;14868:64;:::i;:::-;14858:74;;14814:128;14981:2;15007:64;15063:7;15054:6;15043:9;15039:22;15007:64;:::i;:::-;14997:74;;14952:129;14581:507;;;;;:::o;15094:191::-;15134:3;15153:20;15171:1;15153:20;:::i;:::-;15148:25;;15187:20;15205:1;15187:20;:::i;:::-;15182:25;;15230:1;15227;15223:9;15216:16;;15251:3;15248:1;15245:10;15242:36;;;15258:18;;:::i;:::-;15242:36;15094:191;;;;:::o;15291:233::-;15330:3;15353:24;15371:5;15353:24;:::i;:::-;15344:33;;15399:66;15392:5;15389:77;15386:103;;15469:18;;:::i;:::-;15386:103;15516:1;15509:5;15505:13;15498:20;;15291:233;;;:::o;15530:180::-;15578:77;15575:1;15568:88;15675:4;15672:1;15665:15;15699:4;15696:1;15689:15;15716:442;15865:4;15903:2;15892:9;15888:18;15880:26;;15916:71;15984:1;15973:9;15969:17;15960:6;15916:71;:::i;:::-;15997:72;16065:2;16054:9;16050:18;16041:6;15997:72;:::i;:::-;16079;16147:2;16136:9;16132:18;16123:6;16079:72;:::i;:::-;15716:442;;;;;;:::o;16164:230::-;16304:34;16300:1;16292:6;16288:14;16281:58;16373:13;16368:2;16360:6;16356:15;16349:38;16164:230;:::o;16400:366::-;16542:3;16563:67;16627:2;16622:3;16563:67;:::i;:::-;16556:74;;16639:93;16728:3;16639:93;:::i;:::-;16757:2;16752:3;16748:12;16741:19;;16400:366;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16772:419;;;:::o;17197:227::-;17337:34;17333:1;17325:6;17321:14;17314:58;17406:10;17401:2;17393:6;17389:15;17382:35;17197:227;:::o;17430:366::-;17572:3;17593:67;17657:2;17652:3;17593:67;:::i;:::-;17586:74;;17669:93;17758:3;17669:93;:::i;:::-;17787:2;17782:3;17778:12;17771:19;;17430:366;;;:::o;17802:419::-;17968:4;18006:2;17995:9;17991:18;17983:26;;18055:9;18049:4;18045:20;18041:1;18030:9;18026:17;18019:47;18083:131;18209:4;18083:131;:::i;:::-;18075:139;;17802:419;;;:::o;18227:410::-;18267:7;18290:20;18308:1;18290:20;:::i;:::-;18285:25;;18324:20;18342:1;18324:20;:::i;:::-;18319:25;;18379:1;18376;18372:9;18401:30;18419:11;18401:30;:::i;:::-;18390:41;;18580:1;18571:7;18567:15;18564:1;18561:22;18541:1;18534:9;18514:83;18491:139;;18610:18;;:::i;:::-;18491:139;18275:362;18227:410;;;;:::o;18643:180::-;18691:77;18688:1;18681:88;18788:4;18785:1;18778:15;18812:4;18809:1;18802:15;18829:185;18869:1;18886:20;18904:1;18886:20;:::i;:::-;18881:25;;18920:20;18938:1;18920:20;:::i;:::-;18915:25;;18959:1;18949:35;;18964:18;;:::i;:::-;18949:35;19006:1;19003;18999:9;18994:14;;18829:185;;;;:::o;19020:228::-;19160:34;19156:1;19148:6;19144:14;19137:58;19229:11;19224:2;19216:6;19212:15;19205:36;19020:228;:::o;19254:366::-;19396:3;19417:67;19481:2;19476:3;19417:67;:::i;:::-;19410:74;;19493:93;19582:3;19493:93;:::i;:::-;19611:2;19606:3;19602:12;19595:19;;19254:366;;;:::o;19626:419::-;19792:4;19830:2;19819:9;19815:18;19807:26;;19879:9;19873:4;19869:20;19865:1;19854:9;19850:17;19843:47;19907:131;20033:4;19907:131;:::i;:::-;19899:139;;19626:419;;;:::o"
+ },
+ "methodIdentifiers": {
+ "addLiquidity(address,address,uint256,uint256,uint256,uint256)": "3351733f",
+ "getAmountsOut(address,uint256,address[])": "bb7b9c76",
+ "swapExactTokensForTokens(uint256,uint256,address[])": "86818f26"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factoryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_WEDU\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LiquidityProvider__InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__IdenticalAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__ZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenADesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfTokenBDesired\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minTokenB\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"getAmountsOut\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOutMin\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"path\",\"type\":\"address[]\"}],\"name\":\"swapExactTokensForTokens\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/LiquidityProvider.sol\":\"LiquidityProvider\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"contracts/core/LiquidityProvider.sol\":{\"keccak256\":\"0xc62a452b296ec41c4b8253fbcd55bce9a447114711d94a1616b6ca0822468485\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5dadca37ac30782bc35e096a9478b398f3aa5e19a0eccbd723b3dd189ea64d\",\"dweb:/ipfs/QmPKWpkzNxZt44BirgEW69iA9KPq6MocKpNxpAfLCyoGoG\"]},\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]},\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]},\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]},\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Math.sol": {
+ "Math": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ",
+ "sourceMap": "115:540:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201b3c56a91d0d39047b8d23e66f43350d05f1a639021edbd7b40fc611f003485e64736f6c63430008140033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHL EXTCODECOPY JUMP 0xA9 SAR 0xD CODECOPY DIV PUSH28 0x8D23E66F43350D05F1A639021EDBD7B40FC611F003485E64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ",
+ "sourceMap": "115:540:7:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/Pool.sol": {
+ "Pool": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__InsufficientFunds",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__InsufficientLiquidity",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__NotOwner",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [],
+ "name": "MINIMUM_LIQUIDITY",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "getTokenReserves",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "init",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "liquidateLpTokens",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "swap",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "sync",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_1659": {
+ "entryPoint": null,
+ "id": 1659,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 380,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 222,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 701,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 516,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 662,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 536,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 856,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 401,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 327,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 826,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 526,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 794,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 280,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 233,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 576,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 417,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 781,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 634,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 430,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 586,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 629,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033",
+ "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C6971756964697479546F6B656E730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4C50000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x358 JUMP JUMPDEST POP POP POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x80 DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE POP POP PUSH3 0x43F JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x160 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x176 JUMPI PUSH3 0x175 PUSH3 0x118 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1E0 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x1A1 JUMP JUMPDEST PUSH3 0x1EC DUP7 DUP4 PUSH3 0x1A1 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x239 PUSH3 0x233 PUSH3 0x22D DUP5 PUSH3 0x204 JUMP JUMPDEST PUSH3 0x20E JUMP JUMPDEST PUSH3 0x204 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x255 DUP4 PUSH3 0x218 JUMP JUMPDEST PUSH3 0x26D PUSH3 0x264 DUP3 PUSH3 0x240 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x1AE JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x284 PUSH3 0x275 JUMP JUMPDEST PUSH3 0x291 DUP2 DUP5 DUP5 PUSH3 0x24A JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x2B9 JUMPI PUSH3 0x2AD PUSH1 0x0 DUP3 PUSH3 0x27A JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x297 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x308 JUMPI PUSH3 0x2D2 DUP2 PUSH3 0x17C JUMP JUMPDEST PUSH3 0x2DD DUP5 PUSH3 0x191 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2ED JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x305 PUSH3 0x2FC DUP6 PUSH3 0x191 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x296 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x32D PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x30D JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x348 DUP4 DUP4 PUSH3 0x31A JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x363 DUP3 PUSH3 0xDE JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x37F JUMPI PUSH3 0x37E PUSH3 0xE9 JUMP JUMPDEST JUMPDEST PUSH3 0x38B DUP3 SLOAD PUSH3 0x147 JUMP JUMPDEST PUSH3 0x398 DUP3 DUP3 DUP6 PUSH3 0x2BD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x3D0 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x3BB JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x3C7 DUP6 DUP3 PUSH3 0x33A JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x437 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3E0 DUP7 PUSH3 0x17C JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x40A JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3E3 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x42A JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x426 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x31A JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH2 0x1F25 PUSH3 0x45B PUSH1 0x0 CODECOPY PUSH1 0x0 PUSH2 0xF58 ADD MSTORE PUSH2 0x1F25 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ",
+ "sourceMap": "319:4482:8:-:0;;;642:84;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;708:10:8::1;698:20;;;;;;;;::::0;::::1;319:4482:::0;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;319:4482:8:-;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@MINIMUM_LIQUIDITY_1640": {
+ "entryPoint": 3762,
+ "id": 1640,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@_approve_542": {
+ "entryPoint": 4500,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 5335,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_burn_524": {
+ "entryPoint": 5205,
+ "id": 524,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 5032,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 4492,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 4518,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 4666,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_1699": {
+ "entryPoint": 5187,
+ "id": 1699,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 5806,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 3768,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 991,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 2461,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 1083,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@getTokenReserves_2077": {
+ "entryPoint": 3745,
+ "id": 2077,
+ "parameterSlots": 0,
+ "returnSlots": 2
+ },
+ "@init_1683": {
+ "entryPoint": 3903,
+ "id": 1683,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@liquidateLpTokens_1958": {
+ "entryPoint": 2533,
+ "id": 1958,
+ "parameterSlots": 1,
+ "returnSlots": 2
+ },
+ "@min_1558": {
+ "entryPoint": 5162,
+ "id": 1558,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@mint_1816": {
+ "entryPoint": 1092,
+ "id": 1816,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@name_197": {
+ "entryPoint": 845,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@sqrt_1612": {
+ "entryPoint": 4910,
+ "id": 1612,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@swap_2065": {
+ "entryPoint": 1681,
+ "id": 2065,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@symbol_206": {
+ "entryPoint": 3564,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@sync_2102": {
+ "entryPoint": 4170,
+ "id": 2102,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "@totalSupply_224": {
+ "entryPoint": 1026,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 1036,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 3710,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 6611,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_bool_fromMemory": {
+ "entryPoint": 7746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 6665,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256_fromMemory": {
+ "entryPoint": 7355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 6984,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 7153,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 6846,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 6686,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_bool_fromMemory": {
+ "entryPoint": 7767,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256_fromMemory": {
+ "entryPoint": 7376,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_uint256t_uint256t_address": {
+ "entryPoint": 7029,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 7313,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 6762,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 6804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 6942,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 7328,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": {
+ "entryPoint": 7682,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 7812,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 6777,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 6499,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 6819,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 7112,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 6957,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 6355,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 6366,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 7867,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_div_t_uint256": {
+ "entryPoint": 7633,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_mul_t_uint256": {
+ "entryPoint": 7520,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_sub_t_uint256": {
+ "entryPoint": 7468,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 6570,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 6750,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 6538,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 6632,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 6929,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 6383,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 7264,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 7421,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x12": {
+ "entryPoint": 7586,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 7217,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 6533,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 6425,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 6588,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_bool": {
+ "entryPoint": 7723,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 6642,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:10776:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5288:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5334:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5336:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5336:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5336:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5309:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5318:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5305:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5305:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5330:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5301:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5301:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5298:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5427:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5442:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5456:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5446:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5471:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5506:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5517:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5502:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5502:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5526:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5481:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5481:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5471:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5554:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5569:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5583:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5573:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5599:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5634:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5645:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5630:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5630:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5654:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "5609:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5609:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5599:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5682:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5697:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5711:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5701:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5727:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5762:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5773:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5758:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5758:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5782:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5737:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5737:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "5727:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256t_uint256t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5242:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5253:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5265:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5273:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "5281:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5939:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5949:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5961:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5972:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5957:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5957:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "5949:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6029:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6042:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6053:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6038:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6038:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "5985:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5985:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5985:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6110:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6123:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6134:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6119:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6119:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6066:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6066:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6066:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5903:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5915:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5923:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "5934:4:16",
+ "type": ""
+ }
+ ],
+ "src": "5813:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6234:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6280:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "6282:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6282:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6282:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6255:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6264:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "6251:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6251:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6276:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "6247:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6247:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6244:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "6373:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6388:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6402:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "6392:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6417:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6452:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "6463:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6448:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6448:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6472:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6427:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6427:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6417:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "6500:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6515:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6529:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "6519:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "6545:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6580:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "6591:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6576:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6576:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "6600:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6555:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6555:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6545:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6196:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "6207:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6219:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6227:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6151:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6659:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6676:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6679:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6669:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6669:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6669:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6773:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6776:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6766:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6766:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6766:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6797:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6800:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "6790:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6790:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6790:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6631:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6868:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6878:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "6892:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6898:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "6888:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6888:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6878:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "6909:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "6939:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6945:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6935:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6935:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "6913:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6986:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7000:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7014:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7022:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "7010:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7010:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7000:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6966:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "6959:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6959:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6956:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7089:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "7103:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7103:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7103:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "7053:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "7076:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7084:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "7073:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7073:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "7050:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7050:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7047:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "6852:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "6861:6:16",
+ "type": ""
+ }
+ ],
+ "src": "6817:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7208:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "7225:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7248:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "7230:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7230:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7218:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7218:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "7196:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "7203:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7143:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7365:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7375:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7387:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7398:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7383:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7383:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "7375:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "7455:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7468:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7479:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7464:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7464:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "7411:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7411:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7411:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7337:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "7349:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "7360:4:16",
+ "type": ""
+ }
+ ],
+ "src": "7267:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7558:80:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7568:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "7583:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "7577:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7577:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7568:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "7626:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7599:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7599:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7599:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7536:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "7544:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "7552:5:16",
+ "type": ""
+ }
+ ],
+ "src": "7495:143:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7721:274:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7767:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "7769:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7769:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7769:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "7742:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7751:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "7738:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7738:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7763:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "7734:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7734:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7731:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "7860:128:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "7875:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7889:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "7879:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7904:74:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "7950:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "7961:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7946:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7946:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "7970:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "7914:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7914:64:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "7904:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_uint256_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "7691:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "7702:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "7714:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7644:351:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8029:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8046:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8049:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8039:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8039:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8039:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8143:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8146:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8136:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8136:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8136:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8167:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8170:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8160:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8160:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8160:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "8001:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8232:149:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8242:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8265:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8247:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8247:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8242:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8276:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8299:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8281:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8281:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8276:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8310:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8322:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8325:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "8318:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8318:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "8310:4:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8352:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "8354:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8354:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8354:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "diff",
+ "nodeType": "YulIdentifier",
+ "src": "8343:4:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8349:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "8340:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8340:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8337:37:16"
+ }
+ ]
+ },
+ "name": "checked_sub_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "8218:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "8221:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "diff",
+ "nodeType": "YulTypedName",
+ "src": "8227:4:16",
+ "type": ""
+ }
+ ],
+ "src": "8187:194:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8435:362:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "8445:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8468:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8450:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8450:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8445:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8479:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8502:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8484:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8484:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8479:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "8513:28:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8536:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8539:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "8532:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8532:9:16"
+ },
+ "variables": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulTypedName",
+ "src": "8517:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "8550:41:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "product_raw",
+ "nodeType": "YulIdentifier",
+ "src": "8579:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "8561:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8561:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "8550:7:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8768:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "8770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8701:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8694:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8694:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "8724:1:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "product",
+ "nodeType": "YulIdentifier",
+ "src": "8731:7:16"
+ },
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "8740:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "8727:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8727:15:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "8721:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8721:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "8674:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8674:83:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "8654:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8654:113:16"
+ },
+ "nodeType": "YulIf",
+ "src": "8651:139:16"
+ }
+ ]
+ },
+ "name": "checked_mul_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "8418:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "8421:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "product",
+ "nodeType": "YulTypedName",
+ "src": "8427:7:16",
+ "type": ""
+ }
+ ],
+ "src": "8387:410:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "8831:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8848:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8851:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8841:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8841:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8841:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8945:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8948:4:16",
+ "type": "",
+ "value": "0x12"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "8938:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8938:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8938:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8969:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "8972:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "8962:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "8962:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "8962:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x12",
+ "nodeType": "YulFunctionDefinition",
+ "src": "8803:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9031:143:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9041:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9064:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9046:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9046:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9041:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9075:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9098:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "9080:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9080:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9075:1:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9122:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x12",
+ "nodeType": "YulIdentifier",
+ "src": "9124:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9124:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9124:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9119:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9112:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9112:9:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9109:35:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "9154:14:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "9163:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "9166:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "9159:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9159:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "r",
+ "nodeType": "YulIdentifier",
+ "src": "9154:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "checked_div_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "9020:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "9023:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "r",
+ "nodeType": "YulTypedName",
+ "src": "9029:1:16",
+ "type": ""
+ }
+ ],
+ "src": "8989:185:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9306:206:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9316:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9328:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9339:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9324:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9324:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "9316:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "9396:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9409:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9420:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9405:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9405:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9352:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9352:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9352:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "9477:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9490:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9501:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "9486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9486:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "9433:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9433:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9433:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9270:9:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "9282:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9290:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "9301:4:16",
+ "type": ""
+ }
+ ],
+ "src": "9180:332:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9558:76:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9612:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9621:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9624:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "9614:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9614:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9614:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9581:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9603:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "9588:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9588:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "9578:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9578:32:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "9571:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9571:40:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9568:60:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9551:5:16",
+ "type": ""
+ }
+ ],
+ "src": "9518:116:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9700:77:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "9710:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "9725:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "9719:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9719:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9710:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "9765:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "9741:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9741:30:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9741:30:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "9678:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "9686:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "9694:5:16",
+ "type": ""
+ }
+ ],
+ "src": "9640:137:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9857:271:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "9903:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "9905:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9905:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "9905:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "9878:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "9887:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "9874:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9874:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "9899:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "9870:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "9870:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "9867:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "9996:125:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "10011:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "10015:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10040:71:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10083:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "10094:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10079:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10079:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "10103:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_bool_fromMemory",
+ "nodeType": "YulIdentifier",
+ "src": "10050:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10050:61:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10040:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_bool_fromMemory",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "9827:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "9838:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "9850:6:16",
+ "type": ""
+ }
+ ],
+ "src": "9783:345:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10288:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10298:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10310:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10321:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10306:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10306:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "10298:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "10378:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10391:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10402:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10387:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10387:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10334:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10334:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10334:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "10459:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10472:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10483:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10468:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10415:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10415:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10415:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "10541:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "10554:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "10565:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10550:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10550:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "10497:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10497:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10497:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "10244:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "10256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "10264:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "10272:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "10283:4:16",
+ "type": ""
+ }
+ ],
+ "src": "10134:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10626:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "10636:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10659:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10641:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10641:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10636:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10670:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10693:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "10675:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10675:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10670:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "10704:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10715:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "10718:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "10711:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10711:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "10704:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "10744:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "10746:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10746:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "10746:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "10736:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "10739:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "10733:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "10733:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "10730:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "10613:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "10616:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "10622:3:16",
+ "type": ""
+ }
+ ],
+ "src": "10582:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n let product_raw := mul(x, y)\n product := cleanup_t_uint256(product_raw)\n\n // overflow, if x != 0 and y != product/x\n if iszero(\n or(\n iszero(x),\n eq(y, div(product, x))\n )\n ) { panic_error_0x11() }\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {
+ "1631": [
+ {
+ "length": 32,
+ "start": 3928
+ }
+ ]
+ },
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x100 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x74A0F94B GT PUSH2 0x97 JUMPI DUP1 PUSH4 0xBA9A7A56 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0xBA9A7A56 EQ PUSH2 0x2D9 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x2F7 JUMPI DUP1 PUSH4 0xF09A4016 EQ PUSH2 0x327 JUMPI DUP1 PUSH4 0xFFF6CAE9 EQ PUSH2 0x343 JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x74A0F94B EQ PUSH2 0x23B JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x28A JUMPI DUP1 PUSH4 0xB9CF5005 EQ PUSH2 0x2BA JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x313CE567 GT PUSH2 0xD3 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x1A1 JUMPI DUP1 PUSH4 0x6A627842 EQ PUSH2 0x1BF JUMPI DUP1 PUSH4 0x6D9A640A EQ PUSH2 0x1EF JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x20B JUMPI PUSH2 0x100 JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0x105 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0x123 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x153 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x171 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x10D PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x11A SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x138 SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0x3DF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x14A SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x15B PUSH2 0x402 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x168 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x18B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x186 SWAP2 SWAP1 PUSH2 0x1ABE JUMP JUMPDEST PUSH2 0x40C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x198 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1A9 PUSH2 0x43B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0x1B2D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1D9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D4 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x444 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x209 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x204 SWAP2 SWAP1 PUSH2 0x1B75 JUMP JUMPDEST PUSH2 0x691 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x225 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x220 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x99D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x232 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x255 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x250 SWAP2 SWAP1 PUSH2 0x1B48 JUMP JUMPDEST PUSH2 0x9E5 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x263 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x274 PUSH2 0xDEC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x281 SWAP2 SWAP1 PUSH2 0x1963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29F SWAP2 SWAP1 PUSH2 0x1A1E JUMP JUMPDEST PUSH2 0xE7E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B1 SWAP2 SWAP1 PUSH2 0x1A79 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2C2 PUSH2 0xEA1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D0 SWAP3 SWAP2 SWAP1 PUSH2 0x1BC8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2E1 PUSH2 0xEB2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EE SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x311 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x30C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xEB8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31E SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x341 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x33C SWAP2 SWAP1 PUSH2 0x1BF1 JUMP JUMPDEST PUSH2 0xF3F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x34B PUSH2 0x104A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x35C SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x388 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D5 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3AA JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D5 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B8 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3EA PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x3F7 DUP2 DUP6 DUP6 PUSH2 0x1194 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x417 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0x424 DUP6 DUP3 DUP6 PUSH2 0x11A6 JUMP JUMPDEST PUSH2 0x42F DUP6 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x451 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4CF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x552 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x56F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x593 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5A3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP5 DUP4 PUSH2 0x5B3 SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5BF PUSH2 0x402 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 SUB PUSH2 0x5FE JUMPI PUSH2 0x3E8 PUSH2 0x5E0 DUP4 DUP6 PUSH2 0x5DB SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x132E JUMP JUMPDEST PUSH2 0x5EA SWAP2 SWAP1 PUSH2 0x1D2C JUMP JUMPDEST SWAP8 POP PUSH2 0x5F9 PUSH1 0x1 PUSH2 0x3E8 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x637 JUMP JUMPDEST PUSH2 0x634 DUP8 DUP3 DUP6 PUSH2 0x60E SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x618 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST DUP8 DUP4 DUP6 PUSH2 0x625 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0x62F SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x142A JUMP JUMPDEST SWAP8 POP JUMPDEST PUSH1 0x0 DUP9 GT PUSH2 0x671 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x67B DUP10 DUP10 PUSH2 0x13A8 JUMP JUMPDEST PUSH2 0x685 DUP6 DUP6 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 GT ISZERO DUP1 ISZERO PUSH2 0x6A3 JUMPI POP PUSH1 0x0 DUP3 GT ISZERO JUMPDEST ISZERO PUSH2 0x6DA JUMPI PUSH1 0x40 MLOAD PUSH32 0x5D125C4600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x6E5 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 DUP6 GT DUP1 PUSH2 0x6F6 JUMPI POP DUP1 DUP5 GT JUMPDEST ISZERO PUSH2 0x72D JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP10 GT ISZERO PUSH2 0x807 JUMPI DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C2 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x7E1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x805 SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST PUSH1 0x0 DUP9 GT ISZERO PUSH2 0x890 JUMPI DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP9 DUP11 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x84B SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x86A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x88E SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x8C9 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x8E6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x90A SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x945 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x962 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x986 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP POP POP PUSH2 0x994 DUP3 DUP3 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x9F3 PUSH2 0xEA1 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH1 0x0 PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA80 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xA9D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xAC1 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAFE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xB1B JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB3F SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB4C DUP11 PUSH2 0x99D JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB58 PUSH2 0x402 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 DUP4 PUSH2 0xB67 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB71 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP10 POP DUP1 DUP4 DUP4 PUSH2 0xB80 SWAP2 SWAP1 PUSH2 0x1D60 JUMP JUMPDEST PUSH2 0xB8A SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP9 POP PUSH1 0x0 DUP11 GT ISZERO DUP1 ISZERO PUSH2 0xB9E JUMPI POP PUSH1 0x0 DUP10 GT ISZERO JUMPDEST ISZERO PUSH2 0xBD5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x24217E5100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBDF ADDRESS DUP4 PUSH2 0x1455 JUMP JUMPDEST DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP13 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC39 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xC5D SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA9059CBB DUP13 DUP12 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC99 SWAP3 SWAP2 SWAP1 PUSH2 0x1E02 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xCB8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xCDC SWAP2 SWAP1 PUSH2 0x1E57 JUMP JUMPDEST POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD16 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD57 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP4 POP DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD92 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xDAF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xDD3 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST SWAP3 POP PUSH2 0xDDF DUP5 DUP5 PUSH2 0x1443 JUMP JUMPDEST POP POP POP POP POP POP POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0xDFB SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0xE27 SWAP1 PUSH2 0x1C60 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xE74 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xE49 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xE74 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xE57 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xE89 PUSH2 0x118C JUMP JUMPDEST SWAP1 POP PUSH2 0xE96 DUP2 DUP6 DUP6 PUSH2 0x123A JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x7 SLOAD PUSH1 0x8 SLOAD SWAP2 POP SWAP2 POP SWAP1 SWAP2 JUMP JUMPDEST PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xFC4 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC18A1FC00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x5 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP1 PUSH1 0x6 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH2 0x118A PUSH1 0x5 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10A8 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x10C5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x10E9 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 ADDRESS PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1144 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1185 SWAP2 SWAP1 PUSH2 0x1CD0 JUMP JUMPDEST PUSH2 0x1443 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x11A1 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x14D7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x11B2 DUP5 DUP5 PUSH2 0xEB8 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x1234 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x1224 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x121B SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1233 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x14D7 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12AC JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12A3 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x131E JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1315 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1329 DUP4 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 DUP3 GT ISZERO PUSH2 0x1395 JUMPI DUP2 SWAP1 POP PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP5 PUSH2 0x134D SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x1357 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP1 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x138F JUMPI DUP1 SWAP2 POP PUSH1 0x2 DUP2 DUP3 DUP6 PUSH2 0x1374 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST PUSH2 0x137E SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST PUSH2 0x1388 SWAP2 SWAP1 PUSH2 0x1DD1 JUMP JUMPDEST SWAP1 POP PUSH2 0x135A JUMP JUMPDEST POP PUSH2 0x13A3 JUMP JUMPDEST PUSH1 0x0 DUP3 EQ PUSH2 0x13A2 JUMPI PUSH1 0x1 SWAP1 POP JUMPDEST JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x141A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1411 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1426 PUSH1 0x0 DUP4 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 LT PUSH2 0x1439 JUMPI DUP2 PUSH2 0x143B JUMP JUMPDEST DUP3 JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 PUSH1 0x7 DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x8 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14C7 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BE SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14D3 DUP3 PUSH1 0x0 DUP4 PUSH2 0x16AE JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1549 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1540 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x15BB JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15B2 SWAP2 SWAP1 PUSH2 0x1CA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x16A8 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x169F SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1700 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x16F4 SWAP2 SWAP1 PUSH2 0x1EBB JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x17D3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x178C JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1783 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1E84 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x181C JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x1869 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x18C6 SWAP2 SWAP1 PUSH2 0x1AA3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x190D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1935 DUP3 PUSH2 0x18D3 JUMP JUMPDEST PUSH2 0x193F DUP2 DUP6 PUSH2 0x18DE JUMP JUMPDEST SWAP4 POP PUSH2 0x194F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x18EF JUMP JUMPDEST PUSH2 0x1958 DUP2 PUSH2 0x1919 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x197D DUP2 DUP5 PUSH2 0x192A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19B5 DUP3 PUSH2 0x198A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19C5 DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP2 EQ PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x19E2 DUP2 PUSH2 0x19BC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x19FB DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x1A06 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1A18 DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1A35 JUMPI PUSH2 0x1A34 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1A43 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1A54 DUP6 DUP3 DUP7 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A73 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1A8E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A6A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A9D DUP2 PUSH2 0x19E8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1AB8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1AD7 JUMPI PUSH2 0x1AD6 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1AE5 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1AF6 DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1B07 DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1B27 DUP2 PUSH2 0x1B11 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B42 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1B1E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B5E JUMPI PUSH2 0x1B5D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B6C DUP5 DUP3 DUP6 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1B8E JUMPI PUSH2 0x1B8D PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1B9C DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x1BAD DUP7 DUP3 DUP8 ADD PUSH2 0x1A09 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x1BBE DUP7 DUP3 DUP8 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1BDD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1BEA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C08 JUMPI PUSH2 0x1C07 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1C16 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1C27 DUP6 DUP3 DUP7 ADD PUSH2 0x19D3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1C78 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x1C8B JUMPI PUSH2 0x1C8A PUSH2 0x1C31 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1C9A DUP2 PUSH2 0x19AA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1CB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1C91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1CCA DUP2 PUSH2 0x19F2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CE6 JUMPI PUSH2 0x1CE5 PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1CF4 DUP5 DUP3 DUP6 ADD PUSH2 0x1CBB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1D37 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D42 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x1D5A JUMPI PUSH2 0x1D59 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1D6B DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1D76 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 MUL PUSH2 0x1D84 DUP2 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP DUP3 DUP3 DIV DUP5 EQ DUP4 ISZERO OR PUSH2 0x1D9B JUMPI PUSH2 0x1D9A PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1DDC DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1DE7 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x1DF7 JUMPI PUSH2 0x1DF6 PUSH2 0x1DA2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1E17 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1E24 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1E34 DUP2 PUSH2 0x1A5E JUMP JUMPDEST DUP2 EQ PUSH2 0x1E3F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x1E51 DUP2 PUSH2 0x1E2B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1E6D JUMPI PUSH2 0x1E6C PUSH2 0x1985 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1E7B DUP5 DUP3 DUP6 ADD PUSH2 0x1E42 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x1E99 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x1C91 JUMP JUMPDEST PUSH2 0x1EA6 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1EB3 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x1A94 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1EC6 DUP3 PUSH2 0x19E8 JUMP JUMPDEST SWAP2 POP PUSH2 0x1ED1 DUP4 PUSH2 0x19E8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x1EE9 JUMPI PUSH2 0x1EE8 PUSH2 0x1CFD JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xA5 PUSH3 0xDE9218 0xEA 0xAB 0xAC DUP11 CREATE2 0xBF 0xD6 SSTORE 0xB8 CALLDATALOAD 0xC6 CALLVALUE 0xD9 0xEC INVALID 0x4C 0x27 DUP14 PUSH18 0x76DEF13D4A264164736F6C63430008140033 ",
+ "sourceMap": "319:4482:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1072:1168:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3545:913;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2261:1276:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1981:93:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4466:113:8;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;480:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;734:189:8;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4628:170;;;:::i;:::-;;1779:89:1;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;1072:1168:8:-;1117:17;1148;1167;1188:18;:16;:18::i;:::-;1147:59;;;;1217:17;1244:6;;;;;;;;;;;1237:24;;;1270:4;1237:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1217:59;;1287:17;1314:6;;;;;;;;;;;1307:24;;;1340:4;1307:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1287:59;;1357:23;1395:9;1383;:21;;;;:::i;:::-;1357:47;;1415:23;1453:9;1441;:21;;;;:::i;:::-;1415:47;;1475:20;1498:13;:11;:13::i;:::-;1475:36;;1542:1;1526:12;:17;1522:494;;524:7;1589:44;1617:15;1599;:33;;;;:::i;:::-;1589:9;:44::i;:::-;:83;;;;:::i;:::-;1560:112;;1687:36;1701:1;524:7;1687:5;:36::i;:::-;1522:494;;;1855:149;1917:9;1901:12;1883:15;:30;;;;:::i;:::-;1882:44;;;;:::i;:::-;1980:9;1964:12;1946:15;:30;;;;:::i;:::-;1945:44;;;;:::i;:::-;1855:8;:149::i;:::-;1843:161;;1522:494;2043:1;2030:9;:14;2026:63;;2053:36;;;;;;;;;;;;;;2026:63;2100:21;2106:3;2111:9;2100:5;:21::i;:::-;2132:29;2140:9;2151;2132:7;:29::i;:::-;1136:1104;;;;;;;1072:1168;;;:::o;3545:913::-;3709:1;3695:10;:15;;:34;;;;;3728:1;3714:10;:15;;3695:34;3691:92;;;3751:32;;;;;;;;;;;;;;3691:92;3795:17;3814;3835:18;:16;:18::i;:::-;3794:59;;;;3881:9;3868:10;:22;:48;;;;3907:9;3894:10;:22;3868:48;3864:110;;;3938:36;;;;;;;;;;;;;;3864:110;3985:16;4012;4054:15;4072:6;;;;;;;;;;;4054:24;;4093:15;4111:6;;;;;;;;;;;4093:24;;4149:1;4136:10;:14;4132:60;;;4159:7;4152:24;;;4177:2;4181:10;4152:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4132:60;4224:1;4211:10;:14;4207:60;;;4234:7;4227:24;;;4252:2;4256:10;4227:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4207:60;4300:7;4293:25;;;4327:4;4293:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4282:51;;4366:7;4359:25;;;4393:4;4359:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:51;;4039:372;;4423:27;4431:8;4441;4423:7;:27::i;:::-;3680:778;;;;3545:913;;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;2261:1276:8:-;2334:15;2351;2380:17;2399;2420:18;:16;:18::i;:::-;2379:59;;;;2464:15;2482:6;;;;;;;;;;;2464:24;;2514:15;2532:6;;;;;;;;;;;2514:24;;2564:13;2587:7;2580:25;;;2614:4;2580:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2564:56;;2631:13;2654:7;2647:25;;;2681:4;2647:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2631:56;;2698:14;2715:13;2725:2;2715:9;:13::i;:::-;2698:30;;2741:20;2764:13;:11;:13::i;:::-;2741:36;;2901:12;2889:8;2877:9;:20;;;;:::i;:::-;2876:37;;;;:::i;:::-;2866:47;;3007:12;2995:8;2983:9;:20;;;;:::i;:::-;2982:37;;;;:::i;:::-;2972:47;;3093:1;3082:7;:12;;:28;;;;;3109:1;3098:7;:12;;3082:28;3078:90;;;3132:36;;;;;;;;;;;;;;3078:90;3179:31;3193:4;3200:9;3179:5;:31::i;:::-;3228:7;3221:24;;;3246:2;3250:7;3221:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3276:7;3269:24;;;3294:2;3298:7;3269:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3335:7;3328:25;;;3362:4;3328:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3317:51;;3397:7;3390:25;;;3424:4;3390:40;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3379:51;;3443:27;3451:8;3461;3443:7;:27::i;:::-;2368:1169;;;;;;;;2261:1276;;;:::o;1981:93:1:-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;4466:113:8:-;4515:7;4524;4552:8;;4562;;4544:27;;;;4466:113;;:::o;480:51::-;524:7;480:51;:::o;3551:140:1:-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;734:189:8:-;817:10;806:21;;:7;:21;;;802:57;;836:23;;;;;;;;;;;;;;802:57;881:7;872:6;;:16;;;;;;;;;;;;;;;;;;908:7;899:6;;:16;;;;;;;;;;;;;;;;;;734:189;;:::o;4628:170::-;4664:126;4693:6;;;;;;;;;;;4686:24;;;4719:4;4686:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4747:6;;;;;;;;;;;4740:24;;;4773:4;4740:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4664:7;:126::i;:::-;4628:170::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;349:303:7:-;394:6;421:1;417;:5;413:232;;;443:1;439:5;;459:6;476:1;472;468;:5;;;;:::i;:::-;:9;;;;:::i;:::-;459:18;;492:92;503:1;499;:5;492:92;;;529:1;525:5;;567:1;562;558;554;:5;;;;:::i;:::-;:9;;;;:::i;:::-;553:15;;;;:::i;:::-;549:19;;492:92;;;424:171;413:232;;;610:1;605;:6;601:44;;632:1;628:5;;601:44;413:232;349:303;;;:::o;7458:208:1:-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;135:96:7:-;187:6;214:1;210;:5;:13;;222:1;210:13;;;218:1;210:13;206:17;;135:96;;;;:::o;931:133:8:-;1016:9;1005:8;:20;;;;1047:9;1036:8;:20;;;;931:133;;:::o;7984:206:1:-;8073:1;8054:21;;:7;:21;;;8050:89;;8125:1;8098:30;;;;;;;;;;;:::i;:::-;;;;;;;;8050:89;8148:35;8156:7;8173:1;8177:5;8148:7;:35::i;:::-;7984:206;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:619::-;5265:6;5273;5281;5330:2;5318:9;5309:7;5305:23;5301:32;5298:119;;;5336:79;;:::i;:::-;5298:119;5456:1;5481:53;5526:7;5517:6;5506:9;5502:22;5481:53;:::i;:::-;5471:63;;5427:117;5583:2;5609:53;5654:7;5645:6;5634:9;5630:22;5609:53;:::i;:::-;5599:63;;5554:118;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5188:619;;;;;:::o;5813:332::-;5934:4;5972:2;5961:9;5957:18;5949:26;;5985:71;6053:1;6042:9;6038:17;6029:6;5985:71;:::i;:::-;6066:72;6134:2;6123:9;6119:18;6110:6;6066:72;:::i;:::-;5813:332;;;;;:::o;6151:474::-;6219:6;6227;6276:2;6264:9;6255:7;6251:23;6247:32;6244:119;;;6282:79;;:::i;:::-;6244:119;6402:1;6427:53;6472:7;6463:6;6452:9;6448:22;6427:53;:::i;:::-;6417:63;;6373:117;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6151:474;;;;;:::o;6631:180::-;6679:77;6676:1;6669:88;6776:4;6773:1;6766:15;6800:4;6797:1;6790:15;6817:320;6861:6;6898:1;6892:4;6888:12;6878:22;;6945:1;6939:4;6935:12;6966:18;6956:81;;7022:4;7014:6;7010:17;7000:27;;6956:81;7084:2;7076:6;7073:14;7053:18;7050:38;7047:84;;7103:18;;:::i;:::-;7047:84;6868:269;6817:320;;;:::o;7143:118::-;7230:24;7248:5;7230:24;:::i;:::-;7225:3;7218:37;7143:118;;:::o;7267:222::-;7360:4;7398:2;7387:9;7383:18;7375:26;;7411:71;7479:1;7468:9;7464:17;7455:6;7411:71;:::i;:::-;7267:222;;;;:::o;7495:143::-;7552:5;7583:6;7577:13;7568:22;;7599:33;7626:5;7599:33;:::i;:::-;7495:143;;;;:::o;7644:351::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7889:1;7914:64;7970:7;7961:6;7950:9;7946:22;7914:64;:::i;:::-;7904:74;;7860:128;7644:351;;;;:::o;8001:180::-;8049:77;8046:1;8039:88;8146:4;8143:1;8136:15;8170:4;8167:1;8160:15;8187:194;8227:4;8247:20;8265:1;8247:20;:::i;:::-;8242:25;;8281:20;8299:1;8281:20;:::i;:::-;8276:25;;8325:1;8322;8318:9;8310:17;;8349:1;8343:4;8340:11;8337:37;;;8354:18;;:::i;:::-;8337:37;8187:194;;;;:::o;8387:410::-;8427:7;8450:20;8468:1;8450:20;:::i;:::-;8445:25;;8484:20;8502:1;8484:20;:::i;:::-;8479:25;;8539:1;8536;8532:9;8561:30;8579:11;8561:30;:::i;:::-;8550:41;;8740:1;8731:7;8727:15;8724:1;8721:22;8701:1;8694:9;8674:83;8651:139;;8770:18;;:::i;:::-;8651:139;8435:362;8387:410;;;;:::o;8803:180::-;8851:77;8848:1;8841:88;8948:4;8945:1;8938:15;8972:4;8969:1;8962:15;8989:185;9029:1;9046:20;9064:1;9046:20;:::i;:::-;9041:25;;9080:20;9098:1;9080:20;:::i;:::-;9075:25;;9119:1;9109:35;;9124:18;;:::i;:::-;9109:35;9166:1;9163;9159:9;9154:14;;8989:185;;;;:::o;9180:332::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9352:71;9420:1;9409:9;9405:17;9396:6;9352:71;:::i;:::-;9433:72;9501:2;9490:9;9486:18;9477:6;9433:72;:::i;:::-;9180:332;;;;;:::o;9518:116::-;9588:21;9603:5;9588:21;:::i;:::-;9581:5;9578:32;9568:60;;9624:1;9621;9614:12;9568:60;9518:116;:::o;9640:137::-;9694:5;9725:6;9719:13;9710:22;;9741:30;9765:5;9741:30;:::i;:::-;9640:137;;;;:::o;9783:345::-;9850:6;9899:2;9887:9;9878:7;9874:23;9870:32;9867:119;;;9905:79;;:::i;:::-;9867:119;10025:1;10050:61;10103:7;10094:6;10083:9;10079:22;10050:61;:::i;:::-;10040:71;;9996:125;9783:345;;;;:::o;10134:442::-;10283:4;10321:2;10310:9;10306:18;10298:26;;10334:71;10402:1;10391:9;10387:17;10378:6;10334:71;:::i;:::-;10415:72;10483:2;10472:9;10468:18;10459:6;10415:72;:::i;:::-;10497;10565:2;10554:9;10550:18;10541:6;10497:72;:::i;:::-;10134:442;;;;;;:::o;10582:191::-;10622:3;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10675:20;10693:1;10675:20;:::i;:::-;10670:25;;10718:1;10715;10711:9;10704:16;;10739:3;10736:1;10733:10;10730:36;;;10746:18;;:::i;:::-;10730:36;10582:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "MINIMUM_LIQUIDITY()": "ba9a7a56",
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "getTokenReserves()": "b9cf5005",
+ "init(address,address)": "f09a4016",
+ "liquidateLpTokens(address)": "74a0f94b",
+ "mint(address)": "6a627842",
+ "name()": "06fdde03",
+ "swap(uint256,uint256,address)": "6d9a640a",
+ "symbol()": "95d89b41",
+ "sync()": "fff6cae9",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__InsufficientLiquidity\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolFactory__NotOwner\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/Pool.sol\":\"Pool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/Math.sol\":{\"keccak256\":\"0xc29873c37ea00f6880987bbff586efdd4bc3d743699c7ef25d90df19e6d5d638\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f80e45e1c464ee6fb2adbcc46d951bac9406790291fa0b25f00bf17a5bc22d48\",\"dweb:/ipfs/QmexhaKVCmNK77QZCfMis2oFBfwAnuFEpYa46bk9XNwNwD\"]},\"contracts/core/Pool.sol\":{\"keccak256\":\"0x91911301b2b0e3e22a3aef68e94fcfc49d53d0df1c21cdbcec1e19f28134af17\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://827411733fc07715fd2f92b639134fe16e226e1b8d76f80439c4cba1c4f4d692\",\"dweb:/ipfs/QmVyyA23F3y8xgkv6uTwvmS31EXe53Gnk4qyMjYdwCiz22\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IFactory.sol": {
+ "IFactory": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "poolPair",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "getTokenPairs",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "createPool(address,address)": "e3433615",
+ "getTokenPairs(address,address)": "4a70f02e"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"poolPair\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tokenB\",\"type\":\"address\"}],\"name\":\"getTokenPairs\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IFactory.sol\":\"IFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IFactory.sol\":{\"keccak256\":\"0xcef6d6f2d109fb45cb97edf620e9ec53069c6cbb46b1d1b7d02d56f1821a90d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db8a9735abe29ed4a8e47416ce3ad76e7698334340f89aa5612668ec90c7d76c\",\"dweb:/ipfs/QmW8GDRjG2k5LuVV4LwmifVdskAMQUVRTLrwBuu41GccoY\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IPool.sol": {
+ "IPool": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "getTokenReserves",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "init",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "liquidateLpTokens",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ }
+ ],
+ "name": "mint",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount0Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount1Out",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ }
+ ],
+ "name": "swap",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "getTokenReserves()": "b9cf5005",
+ "init(address,address)": "f09a4016",
+ "liquidateLpTokens(address)": "74a0f94b",
+ "mint(address)": "6a627842",
+ "swap(uint256,uint256,address)": "6d9a640a"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getTokenReserves\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tokenA\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_tokenB\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"liquidateLpTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountB\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IPool.sol\":\"IPool\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IPool.sol\":{\"keccak256\":\"0xdb10a774b70c4da6d89d51f3ca5aefd1a9249b1778e8f6736b52b3e719386581\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cb5e89892eceb7ea753bab6a18ead188941fcdf91e7194b3deed045a27c31ce\",\"dweb:/ipfs/QmQwqqPV6kMQrSpvuh7mnP4rujvAFLhKTZTKuZkxcdYpjg\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/interfaces/IWedu.sol": {
+ "IWEDU": {
+ "abi": [
+ {
+ "inputs": [],
+ "name": "deposit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "name": "withdraw",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {
+ "deposit()": "d0e30db0",
+ "transfer(address,uint256)": "a9059cbb",
+ "withdraw(uint256)": "2e1a7d4d"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/interfaces/IWedu.sol\":\"IWEDU\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/interfaces/IWedu.sol\":{\"keccak256\":\"0x249af83661c39446272c7e01ab092594560984de06e5c3f5659eb278f3115e30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24c8bc2f5a5cf3d97806d8d73b2415bd38922140d4302ce010f8dc4f053702c7\",\"dweb:/ipfs/QmWzAfprdoeKCMSn9BBVgd5vREXWYhyE6G3EJ76v5jN7oi\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/libraries/Library.sol": {
+ "DefiLibrary": {
+ "abi": [],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033",
+ "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ",
+ "sourceMap": "137:1380:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7097ffb3e38df8d3cb59d92c9df8b2fa7ffcff7549d82e5318eb526408c60b364736f6c63430008140033",
+ "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD7 MULMOD PUSH32 0xFB3E38DF8D3CB59D92C9DF8B2FA7FFCFF7549D82E5318EB526408C60B364736F PUSH13 0x63430008140033000000000000 ",
+ "sourceMap": "137:1380:12:-:0;;;;;;;;"
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/libraries/Library.sol\":\"DefiLibrary\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/core/libraries/Library.sol\":{\"keccak256\":\"0x85c8716028e99267665e599329119bcf08d74e994bbc69cb2b1bd6ed6ef382d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7299e8263b0922deb776143dcb9e3e2296c5e05751445819f727beb62a6c73e4\",\"dweb:/ipfs/QmbvPUTraZvS747ssabnoVhWv665ZgwoVY3nDn6pbPsr4E\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "AppleToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2308": {
+ "entryPoint": null,
+ "id": 2308,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4170706C65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4150540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ",
+ "sourceMap": "120:205:13:-:0;;;156:38;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:205:13;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:205:13:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2321": {
+ "entryPoint": 798,
+ "id": 2321,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA 0xD1 LOG0 PC SWAP9 0xBA 0xD6 SWAP16 PUSH10 0x32DCC19A99A095143E41 0xD8 DUP9 BYTE 0xC5 CALL PUSH16 0x88818758BFA1F164736F6C6343000814 STOP CALLER ",
+ "sourceMap": "120:205:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;202:87:13;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;202:87:13:-;263:18;269:3;274:6;263:5;:18::i;:::-;202:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/Apple.Token.sol\":\"AppleToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/Apple.Token.sol\":{\"keccak256\":\"0x51c944f3d580ca466b3c0ff8e09cdefd709e27ca8cad5cc9089803a20fc6f141\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e17f2d732e89c5a5a974fdf45ecdbea99abf948d127ff4aeb5275a2a38f94fa\",\"dweb:/ipfs/QmYVLecNiU2L65ZSrMvvkL8UyhU4BSx4MbSiLDvNRQtDQP\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "CherryToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2335": {
+ "entryPoint": null,
+ "id": 2335,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4368657272790000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4348540000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ",
+ "sourceMap": "120:207:14:-:0;;;157:39;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:207:14;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:207:14:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2348": {
+ "entryPoint": 798,
+ "id": 2348,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB2 0xDC SUB ISZERO SELFBALANCE 0x1F GASPRICE BALANCE PUSH6 0x742E075B8BD1 ADDRESS CHAINID SLT 0x28 COINBASE SWAP3 0xC3 PUSH2 0xC4D0 DUP4 PUSH16 0x34C9C9972A64736F6C63430008140033 ",
+ "sourceMap": "120:207:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;204:87:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;204:87:14:-;265:18;271:3;276:6;265:5;:18::i;:::-;204:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/CherryToken.sol\":\"CherryToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/CherryToken.sol\":{\"keccak256\":\"0xea003effc68d8c72362c525665d8b493b7adec444905b46f5ac7a431ec85c41c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://800ace38f79f989b0e98de56ec899dd8b605eacfd62907c97026e43f267fffee\",\"dweb:/ipfs/QmNyQWEuL4ND3ZDHLMy9pPXFrM4KqHtFXQ6khi6bZxdGVM\"]}},\"version\":1}"
+ }
+ },
+ "contracts/core/wrapped-native-token/WEdu.sol": {
+ "WrappedEduToken": {
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {
+ "@_188": {
+ "entryPoint": null,
+ "id": 188,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_2362": {
+ "entryPoint": null,
+ "id": 2362,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "array_dataslot_t_string_storage": {
+ "entryPoint": 328,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 170,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clean_up_bytearray_end_slots_t_string_storage": {
+ "entryPoint": 649,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 464,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "clear_storage_range_t_bytes1": {
+ "entryPoint": 610,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "convert_t_uint256_to_t_uint256": {
+ "entryPoint": 484,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": {
+ "entryPoint": 804,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "divide_by_32_ceil": {
+ "entryPoint": 349,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 275,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "extract_used_part_and_set_length_of_short_byte_array": {
+ "entryPoint": 774,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "identity": {
+ "entryPoint": 474,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "mask_bytes_dynamic": {
+ "entryPoint": 742,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "panic_error_0x22": {
+ "entryPoint": 228,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x41": {
+ "entryPoint": 181,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "prepare_store_t_uint256": {
+ "entryPoint": 524,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "shift_left_dynamic": {
+ "entryPoint": 365,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "shift_right_unsigned_dynamic": {
+ "entryPoint": 729,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "storage_set_to_zero_t_uint256": {
+ "entryPoint": 582,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "update_byte_slice_dynamic32": {
+ "entryPoint": 378,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "update_storage_value_t_uint256_to_t_uint256": {
+ "entryPoint": 534,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "zero_value_for_split_t_uint256": {
+ "entryPoint": 577,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:5231:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "140:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "157:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "160:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "150:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "150:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "150:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "254:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "257:4:16",
+ "type": "",
+ "value": "0x41"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "247:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "247:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "247:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "278:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "281:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "271:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "271:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "271:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x41",
+ "nodeType": "YulFunctionDefinition",
+ "src": "112:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "326:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "343:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "346:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "336:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "336:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "336:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "440:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "443:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "433:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "433:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "433:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "464:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "467:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "457:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "457:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "457:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "298:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "535:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "545:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "559:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "565:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "555:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "555:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "545:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "576:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "606:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "612:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "602:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "602:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "580:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "653:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "667:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "681:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "689:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "677:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "677:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "667:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "633:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "626:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "626:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "623:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "756:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "770:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "770:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "770:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "720:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "743:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "751:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "740:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "740:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "717:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "717:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "714:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "519:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "528:6:16",
+ "type": ""
+ }
+ ],
+ "src": "484:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "864:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "874:11:16",
+ "value": {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "882:3:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "874:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "902:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "name": "ptr",
+ "nodeType": "YulIdentifier",
+ "src": "905:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "895:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "895:14:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "895:14:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "918:26:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "936:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "939:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "keccak256",
+ "nodeType": "YulIdentifier",
+ "src": "926:9:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "926:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "918:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "ptr",
+ "nodeType": "YulTypedName",
+ "src": "851:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "859:4:16",
+ "type": ""
+ }
+ ],
+ "src": "810:141:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1001:49:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1011:33:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1029:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1036:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1025:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1025:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1041:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "1021:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1021:23:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1011:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "984:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "994:6:16",
+ "type": ""
+ }
+ ],
+ "src": "957:93:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1109:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1119:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "1144:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1150:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shl",
+ "nodeType": "YulIdentifier",
+ "src": "1140:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1140:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "1119:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_left_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "1084:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1090:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "1100:8:16",
+ "type": ""
+ }
+ ],
+ "src": "1056:107:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1245:317:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1255:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulIdentifier",
+ "src": "1276:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1288:1:16",
+ "type": "",
+ "value": "8"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "1272:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1272:18:16"
+ },
+ "variables": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulTypedName",
+ "src": "1259:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "1299:109:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1330:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1341:66:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1311:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1311:97:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "1303:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1417:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "shiftBits",
+ "nodeType": "YulIdentifier",
+ "src": "1448:9:16"
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1459:8:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_left_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "1429:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1429:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1417:8:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1477:30:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1490:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1501:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "1497:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1497:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1486:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1486:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1477:5:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1516:40:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1529:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "toInsert",
+ "nodeType": "YulIdentifier",
+ "src": "1540:8:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "1550:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1536:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1536:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "1526:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1526:30:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "1516:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1206:5:16",
+ "type": ""
+ },
+ {
+ "name": "shiftBytes",
+ "nodeType": "YulTypedName",
+ "src": "1213:10:16",
+ "type": ""
+ },
+ {
+ "name": "toInsert",
+ "nodeType": "YulTypedName",
+ "src": "1225:8:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "1238:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1169:393:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1613:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1623:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1634:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1623:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1595:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1605:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1568:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1683:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1693:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1700:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1693:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "identity",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1669:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1679:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1651:60:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1777:82:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1787:66:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1845:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1827:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1827:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "identity",
+ "nodeType": "YulIdentifier",
+ "src": "1818:8:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1818:34:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "1800:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1800:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "converted",
+ "nodeType": "YulIdentifier",
+ "src": "1787:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1757:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "converted",
+ "nodeType": "YulTypedName",
+ "src": "1767:9:16",
+ "type": ""
+ }
+ ],
+ "src": "1717:142:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1912:28:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1922:12:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1929:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "1922:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1898:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "1908:3:16",
+ "type": ""
+ }
+ ],
+ "src": "1865:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2022:193:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2032:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value_0",
+ "nodeType": "YulIdentifier",
+ "src": "2087:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "convert_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2056:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2056:39:16"
+ },
+ "variables": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulTypedName",
+ "src": "2036:16:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2111:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2151:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "2145:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2145:11:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2158:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "convertedValue_0",
+ "nodeType": "YulIdentifier",
+ "src": "2190:16:16"
+ }
+ ],
+ "functionName": {
+ "name": "prepare_store_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2166:23:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2166:41:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_byte_slice_dynamic32",
+ "nodeType": "YulIdentifier",
+ "src": "2117:27:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2117:91:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "2104:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2104:105:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2104:105:16"
+ }
+ ]
+ },
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "1999:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2005:6:16",
+ "type": ""
+ },
+ {
+ "name": "value_0",
+ "nodeType": "YulTypedName",
+ "src": "2013:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1946:269:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2270:24:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2280:8:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2287:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variableNames": [
+ {
+ "name": "ret",
+ "nodeType": "YulIdentifier",
+ "src": "2280:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "ret",
+ "nodeType": "YulTypedName",
+ "src": "2266:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2221:73:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2353:136:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2363:46:16",
+ "value": {
+ "arguments": [],
+ "functionName": {
+ "name": "zero_value_for_split_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2377:30:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2377:32:16"
+ },
+ "variables": [
+ {
+ "name": "zero_0",
+ "nodeType": "YulTypedName",
+ "src": "2367:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "2462:4:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2468:6:16"
+ },
+ {
+ "name": "zero_0",
+ "nodeType": "YulIdentifier",
+ "src": "2476:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "update_storage_value_t_uint256_to_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2418:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2418:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2418:65:16"
+ }
+ ]
+ },
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "2339:4:16",
+ "type": ""
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2345:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2300:189:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2545:136:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2612:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2656:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2663:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "storage_set_to_zero_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2626:29:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2626:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2626:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2565:5:16"
+ },
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "2572:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "2562:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2562:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "2577:26:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2579:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2592:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2599:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2588:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2588:13:16"
+ },
+ "variableNames": [
+ {
+ "name": "start",
+ "nodeType": "YulIdentifier",
+ "src": "2579:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "2559:2:16",
+ "statements": []
+ },
+ "src": "2555:120:16"
+ }
+ ]
+ },
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "start",
+ "nodeType": "YulTypedName",
+ "src": "2533:5:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2540:3:16",
+ "type": ""
+ }
+ ],
+ "src": "2495:186:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2766:464:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2792:431:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2806:54:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "array",
+ "nodeType": "YulIdentifier",
+ "src": "2854:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "2822:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2822:38:16"
+ },
+ "variables": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulTypedName",
+ "src": "2810:8:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2873:63:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "2896:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "2924:10:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "2906:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2906:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2892:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2892:44:16"
+ },
+ "variables": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulTypedName",
+ "src": "2877:11:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3093:27:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3095:23:16",
+ "value": {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3110:8:16"
+ },
+ "variableNames": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3095:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "startIndex",
+ "nodeType": "YulIdentifier",
+ "src": "3077:10:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3089:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "3074:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3074:18:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3071:49:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "deleteStart",
+ "nodeType": "YulIdentifier",
+ "src": "3162:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "dataArea",
+ "nodeType": "YulIdentifier",
+ "src": "3179:8:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3207:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "divide_by_32_ceil",
+ "nodeType": "YulIdentifier",
+ "src": "3189:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3189:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3175:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3175:37:16"
+ }
+ ],
+ "functionName": {
+ "name": "clear_storage_range_t_bytes1",
+ "nodeType": "YulIdentifier",
+ "src": "3133:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3133:80:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3133:80:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "2783:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2788:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "2780:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2780:11:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2777:446:16"
+ }
+ ]
+ },
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "array",
+ "nodeType": "YulTypedName",
+ "src": "2742:5:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "2749:3:16",
+ "type": ""
+ },
+ {
+ "name": "startIndex",
+ "nodeType": "YulTypedName",
+ "src": "2754:10:16",
+ "type": ""
+ }
+ ],
+ "src": "2687:543:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3299:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3309:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "bits",
+ "nodeType": "YulIdentifier",
+ "src": "3334:4:16"
+ },
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3340:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "shr",
+ "nodeType": "YulIdentifier",
+ "src": "3330:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3330:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "newValue",
+ "nodeType": "YulIdentifier",
+ "src": "3309:8:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "bits",
+ "nodeType": "YulTypedName",
+ "src": "3274:4:16",
+ "type": ""
+ },
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3280:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "newValue",
+ "nodeType": "YulTypedName",
+ "src": "3290:8:16",
+ "type": ""
+ }
+ ],
+ "src": "3236:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3410:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3420:68:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3469:1:16",
+ "type": "",
+ "value": "8"
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulIdentifier",
+ "src": "3472:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3465:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3465:13:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3484:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3480:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3480:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "shift_right_unsigned_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3436:28:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3436:51:16"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "3432:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3432:56:16"
+ },
+ "variables": [
+ {
+ "name": "mask",
+ "nodeType": "YulTypedName",
+ "src": "3424:4:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3497:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3511:4:16"
+ },
+ {
+ "name": "mask",
+ "nodeType": "YulIdentifier",
+ "src": "3517:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "3507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3507:15:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "3497:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3387:4:16",
+ "type": ""
+ },
+ {
+ "name": "bytes",
+ "nodeType": "YulTypedName",
+ "src": "3393:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "3403:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3359:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3614:214:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3747:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3774:4:16"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3780:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "3755:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3755:29:16"
+ },
+ "variableNames": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3747:4:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "3793:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "3804:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3814:1:16",
+ "type": "",
+ "value": "2"
+ },
+ {
+ "name": "len",
+ "nodeType": "YulIdentifier",
+ "src": "3817:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "3810:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3810:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "or",
+ "nodeType": "YulIdentifier",
+ "src": "3801:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3801:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "used",
+ "nodeType": "YulIdentifier",
+ "src": "3793:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "3595:4:16",
+ "type": ""
+ },
+ {
+ "name": "len",
+ "nodeType": "YulTypedName",
+ "src": "3601:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "used",
+ "nodeType": "YulTypedName",
+ "src": "3609:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3533:295:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3925:1303:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "3936:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "3983:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "3950:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3950:37:16"
+ },
+ "variables": [
+ {
+ "name": "newLen",
+ "nodeType": "YulTypedName",
+ "src": "3940:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4072:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x41",
+ "nodeType": "YulIdentifier",
+ "src": "4074:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4074:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4074:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4044:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4052:18:16",
+ "type": "",
+ "value": "0xffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4041:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4041:30:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4038:56:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4104:52:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4150:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "sload",
+ "nodeType": "YulIdentifier",
+ "src": "4144:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4144:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_byte_array_length",
+ "nodeType": "YulIdentifier",
+ "src": "4118:25:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4118:38:16"
+ },
+ "variables": [
+ {
+ "name": "oldLen",
+ "nodeType": "YulTypedName",
+ "src": "4108:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4249:4:16"
+ },
+ {
+ "name": "oldLen",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4263:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "clean_up_bytearray_end_slots_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4203:45:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4203:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4203:67:16"
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4280:18:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4297:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulTypedName",
+ "src": "4284:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4308:17:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:4:16",
+ "type": "",
+ "value": "0x20"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4308:9:16"
+ }
+ ]
+ },
+ {
+ "cases": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4372:611:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4386:37:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4405:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4417:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "4413:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4413:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4401:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4401:22:16"
+ },
+ "variables": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulTypedName",
+ "src": "4390:7:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4437:51:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4483:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_dataslot_t_string_storage",
+ "nodeType": "YulIdentifier",
+ "src": "4451:31:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4451:37:16"
+ },
+ "variables": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulTypedName",
+ "src": "4441:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4501:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4510:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "4505:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4569:163:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4594:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4612:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4617:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4608:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4608:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4602:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4602:26:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4587:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4587:42:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4587:42:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4646:24:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4660:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4668:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4656:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4656:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4646:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4687:31:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4704:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4715:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4700:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4700:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4687:9:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4535:1:16"
+ },
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4538:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4532:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4532:14:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "4547:21:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4549:17:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4558:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4561:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4554:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4554:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "4549:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "4528:3:16",
+ "statements": []
+ },
+ "src": "4524:208:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4768:156:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4786:43:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "4813:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "4818:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4809:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4809:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "4803:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4803:26:16"
+ },
+ "variables": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulTypedName",
+ "src": "4790:9:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "dstPtr",
+ "nodeType": "YulIdentifier",
+ "src": "4853:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "lastValue",
+ "nodeType": "YulIdentifier",
+ "src": "4880:9:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4895:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4903:4:16",
+ "type": "",
+ "value": "0x1f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4891:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4891:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "mask_bytes_dynamic",
+ "nodeType": "YulIdentifier",
+ "src": "4861:18:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4861:48:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4846:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4846:64:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4846:64:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "loopEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4751:7:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4760:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "4748:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4748:19:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4745:179:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "4944:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4958:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4966:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "mul",
+ "nodeType": "YulIdentifier",
+ "src": "4954:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4954:14:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4970:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4950:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4950:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "4937:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4937:36:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4937:36:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4365:618:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4370:1:16",
+ "type": "",
+ "value": "1"
+ }
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5000:222:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5014:14:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5027:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "5018:5:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5051:67:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5069:35:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "5088:3:16"
+ },
+ {
+ "name": "srcOffset",
+ "nodeType": "YulIdentifier",
+ "src": "5093:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5084:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5084:19:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "5078:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5078:26:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5069:5:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5044:6:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5041:77:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "slot",
+ "nodeType": "YulIdentifier",
+ "src": "5138:4:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "5197:5:16"
+ },
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "5204:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "extract_used_part_and_set_length_of_short_byte_array",
+ "nodeType": "YulIdentifier",
+ "src": "5144:52:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5144:67:16"
+ }
+ ],
+ "functionName": {
+ "name": "sstore",
+ "nodeType": "YulIdentifier",
+ "src": "5131:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5131:81:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5131:81:16"
+ }
+ ]
+ },
+ "nodeType": "YulCase",
+ "src": "4992:230:16",
+ "value": "default"
+ }
+ ],
+ "expression": {
+ "arguments": [
+ {
+ "name": "newLen",
+ "nodeType": "YulIdentifier",
+ "src": "4345:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4353:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "4342:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4342:14:16"
+ },
+ "nodeType": "YulSwitch",
+ "src": "4335:887:16"
+ }
+ ]
+ },
+ "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "slot",
+ "nodeType": "YulTypedName",
+ "src": "3914:4:16",
+ "type": ""
+ },
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "3920:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3833:1395:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "linkReferences": {},
+ "object": "60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5772617070656445647500000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5745445500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x8F SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP DUP1 PUSH1 0x4 SWAP1 DUP2 PUSH3 0xA1 SWAP2 SWAP1 PUSH3 0x324 JUMP JUMPDEST POP POP POP PUSH3 0x40B JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH3 0x12C JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x142 JUMPI PUSH3 0x141 PUSH3 0xE4 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH3 0x1AC PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x16D JUMP JUMPDEST PUSH3 0x1B8 DUP7 DUP4 PUSH3 0x16D JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x205 PUSH3 0x1FF PUSH3 0x1F9 DUP5 PUSH3 0x1D0 JUMP JUMPDEST PUSH3 0x1DA JUMP JUMPDEST PUSH3 0x1D0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x221 DUP4 PUSH3 0x1E4 JUMP JUMPDEST PUSH3 0x239 PUSH3 0x230 DUP3 PUSH3 0x20C JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x17A JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x250 PUSH3 0x241 JUMP JUMPDEST PUSH3 0x25D DUP2 DUP5 DUP5 PUSH3 0x216 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x285 JUMPI PUSH3 0x279 PUSH1 0x0 DUP3 PUSH3 0x246 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x263 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x2D4 JUMPI PUSH3 0x29E DUP2 PUSH3 0x148 JUMP JUMPDEST PUSH3 0x2A9 DUP5 PUSH3 0x15D JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x2B9 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x2D1 PUSH3 0x2C8 DUP6 PUSH3 0x15D JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x262 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x2F9 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x2D9 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x314 DUP4 DUP4 PUSH3 0x2E6 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x32F DUP3 PUSH3 0xAA JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x34B JUMPI PUSH3 0x34A PUSH3 0xB5 JUMP JUMPDEST JUMPDEST PUSH3 0x357 DUP3 SLOAD PUSH3 0x113 JUMP JUMPDEST PUSH3 0x364 DUP3 DUP3 DUP6 PUSH3 0x289 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x39C JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x387 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x393 DUP6 DUP3 PUSH3 0x306 JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x403 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x3AC DUP7 PUSH3 0x148 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3D6 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH3 0x3AF JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x3F6 JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x3F2 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x2E6 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xF0C DUP1 PUSH3 0x41B PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ",
+ "sourceMap": "120:325:15:-:0;;;161:44;;;;;;;;;;1601:113:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1675:5;1667;:13;;;;;;:::i;:::-;;1700:7;1690;:17;;;;;;:::i;:::-;;1601:113;;120:325:15;;7:99:16;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;120:325:15:-;;;;;;;"
+ },
+ "deployedBytecode": {
+ "functionDebugData": {
+ "@_approve_542": {
+ "entryPoint": 1208,
+ "id": 542,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_approve_602": {
+ "entryPoint": 1748,
+ "id": 602,
+ "parameterSlots": 4,
+ "returnSlots": 0
+ },
+ "@_mint_491": {
+ "entryPoint": 1618,
+ "id": 491,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@_msgSender_767": {
+ "entryPoint": 1200,
+ "id": 767,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@_spendAllowance_650": {
+ "entryPoint": 1226,
+ "id": 650,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_transfer_381": {
+ "entryPoint": 1374,
+ "id": 381,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@_update_458": {
+ "entryPoint": 2219,
+ "id": 458,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "@allowance_278": {
+ "entryPoint": 1065,
+ "id": 278,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@approve_302": {
+ "entryPoint": 697,
+ "id": 302,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "@balanceOf_237": {
+ "entryPoint": 812,
+ "id": 237,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "@decimals_215": {
+ "entryPoint": 789,
+ "id": 215,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@mint_2375": {
+ "entryPoint": 798,
+ "id": 2375,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "@name_197": {
+ "entryPoint": 551,
+ "id": 197,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@symbol_206": {
+ "entryPoint": 884,
+ "id": 206,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@totalSupply_224": {
+ "entryPoint": 732,
+ "id": 224,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "@transferFrom_334": {
+ "entryPoint": 742,
+ "id": 334,
+ "parameterSlots": 3,
+ "returnSlots": 1
+ },
+ "@transfer_261": {
+ "entryPoint": 1030,
+ "id": 261,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_address": {
+ "entryPoint": 3024,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_t_uint256": {
+ "entryPoint": 3078,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_address": {
+ "entryPoint": 3397,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_decode_tuple_t_addresst_address": {
+ "entryPoint": 3442,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_decode_tuple_t_addresst_addresst_uint256": {
+ "entryPoint": 3259,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 3
+ },
+ "abi_decode_tuple_t_addresst_uint256": {
+ "entryPoint": 3099,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 2
+ },
+ "abi_encode_t_address_to_t_address_fromStack": {
+ "entryPoint": 3602,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_bool_to_t_bool_fromStack": {
+ "entryPoint": 3175,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2855,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_t_uint256_to_t_uint256_fromStack": {
+ "entryPoint": 3217,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_t_uint8_to_t_uint8_fromStack": {
+ "entryPoint": 3355,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 0
+ },
+ "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
+ "entryPoint": 3672,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed": {
+ "entryPoint": 3617,
+ "id": null,
+ "parameterSlots": 4,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
+ "entryPoint": 3190,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
+ "entryPoint": 2912,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
+ "entryPoint": 3232,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed": {
+ "entryPoint": 3370,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "allocate_unbounded": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 1
+ },
+ "array_length_t_string_memory_ptr": {
+ "entryPoint": 2768,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
+ "entryPoint": 2779,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "checked_add_t_uint256": {
+ "entryPoint": 3746,
+ "id": null,
+ "parameterSlots": 2,
+ "returnSlots": 1
+ },
+ "cleanup_t_address": {
+ "entryPoint": 2983,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_bool": {
+ "entryPoint": 3163,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint160": {
+ "entryPoint": 2951,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint256": {
+ "entryPoint": 3045,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "cleanup_t_uint8": {
+ "entryPoint": 3342,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "copy_memory_to_memory_with_cleanup": {
+ "entryPoint": 2796,
+ "id": null,
+ "parameterSlots": 3,
+ "returnSlots": 0
+ },
+ "extract_byte_array_length": {
+ "entryPoint": 3553,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "panic_error_0x11": {
+ "entryPoint": 3699,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "panic_error_0x22": {
+ "entryPoint": 3506,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
+ "entryPoint": null,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
+ "entryPoint": 2946,
+ "id": null,
+ "parameterSlots": 0,
+ "returnSlots": 0
+ },
+ "round_up_to_mul_of_32": {
+ "entryPoint": 2838,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 1
+ },
+ "validator_revert_t_address": {
+ "entryPoint": 3001,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ },
+ "validator_revert_t_uint256": {
+ "entryPoint": 3055,
+ "id": null,
+ "parameterSlots": 1,
+ "returnSlots": 0
+ }
+ },
+ "generatedSources": [
+ {
+ "ast": {
+ "nodeType": "YulBlock",
+ "src": "0:7360:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "66:40:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "77:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "93:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "87:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "87:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "77:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "49:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "59:6:16",
+ "type": ""
+ }
+ ],
+ "src": "7:99:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "208:73:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "225:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "230:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "218:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "218:19:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "218:19:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "246:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "265:3:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "270:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "261:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "261:14:16"
+ },
+ "variableNames": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulIdentifier",
+ "src": "246:11:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "180:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "185:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "updated_pos",
+ "nodeType": "YulTypedName",
+ "src": "196:11:16",
+ "type": ""
+ }
+ ],
+ "src": "112:169:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "349:184:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "359:10:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "368:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "i",
+ "nodeType": "YulTypedName",
+ "src": "363:1:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "428:63:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "453:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "458:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "449:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "449:11:16"
+ },
+ {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "src",
+ "nodeType": "YulIdentifier",
+ "src": "472:3:16"
+ },
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "477:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "468:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "468:11:16"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "462:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "462:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "442:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "442:39:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "442:39:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "389:1:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "392:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "386:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "386:13:16"
+ },
+ "nodeType": "YulForLoop",
+ "post": {
+ "nodeType": "YulBlock",
+ "src": "400:19:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "402:15:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "411:1:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "414:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "407:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "407:10:16"
+ },
+ "variableNames": [
+ {
+ "name": "i",
+ "nodeType": "YulIdentifier",
+ "src": "402:1:16"
+ }
+ ]
+ }
+ ]
+ },
+ "pre": {
+ "nodeType": "YulBlock",
+ "src": "382:3:16",
+ "statements": []
+ },
+ "src": "378:113:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dst",
+ "nodeType": "YulIdentifier",
+ "src": "511:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "516:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "507:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "507:16:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "525:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "500:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "500:27:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "500:27:16"
+ }
+ ]
+ },
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "src",
+ "nodeType": "YulTypedName",
+ "src": "331:3:16",
+ "type": ""
+ },
+ {
+ "name": "dst",
+ "nodeType": "YulTypedName",
+ "src": "336:3:16",
+ "type": ""
+ },
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "341:6:16",
+ "type": ""
+ }
+ ],
+ "src": "287:246:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "587:54:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "597:38:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "615:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "622:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "611:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "611:14:16"
+ },
+ {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "631:2:16",
+ "type": "",
+ "value": "31"
+ }
+ ],
+ "functionName": {
+ "name": "not",
+ "nodeType": "YulIdentifier",
+ "src": "627:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "627:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "607:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "607:28:16"
+ },
+ "variableNames": [
+ {
+ "name": "result",
+ "nodeType": "YulIdentifier",
+ "src": "597:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "570:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "result",
+ "nodeType": "YulTypedName",
+ "src": "580:6:16",
+ "type": ""
+ }
+ ],
+ "src": "539:102:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "739:285:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "749:53:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "796:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_length_t_string_memory_ptr",
+ "nodeType": "YulIdentifier",
+ "src": "763:32:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "763:39:16"
+ },
+ "variables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "753:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "811:78:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "877:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "882:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "818:58:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "818:71:16"
+ },
+ "variableNames": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "811:3:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "937:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "944:4:16",
+ "type": "",
+ "value": "0x20"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "933:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "933:16:16"
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "951:3:16"
+ },
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "956:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "copy_memory_to_memory_with_cleanup",
+ "nodeType": "YulIdentifier",
+ "src": "898:34:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "898:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "898:65:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "972:46:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "983:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "1010:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "round_up_to_mul_of_32",
+ "nodeType": "YulIdentifier",
+ "src": "988:21:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "988:29:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "979:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "979:39:16"
+ },
+ "variableNames": [
+ {
+ "name": "end",
+ "nodeType": "YulIdentifier",
+ "src": "972:3:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "720:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "727:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "735:3:16",
+ "type": ""
+ }
+ ],
+ "src": "647:377:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1148:195:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1158:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1170:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1181:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1166:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1166:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1158:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1205:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1216:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "1201:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1201:17:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1224:4:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "1230:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "1220:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1220:20:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "1194:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1194:47:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1194:47:16"
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "1250:86:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "1322:6:16"
+ },
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1331:4:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "1258:63:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1258:78:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "1250:4:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "1120:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "1132:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "1143:4:16",
+ "type": ""
+ }
+ ],
+ "src": "1030:313:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1389:35:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1399:19:16",
+ "value": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1415:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "mload",
+ "nodeType": "YulIdentifier",
+ "src": "1409:5:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1409:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulIdentifier",
+ "src": "1399:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "allocate_unbounded",
+ "nodeType": "YulFunctionDefinition",
+ "returnVariables": [
+ {
+ "name": "memPtr",
+ "nodeType": "YulTypedName",
+ "src": "1382:6:16",
+ "type": ""
+ }
+ ],
+ "src": "1349:75:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1519:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1536:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1539:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1529:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1529:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1529:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1430:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1642:28:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1659:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1662:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "1652:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1652:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "1652:12:16"
+ }
+ ]
+ },
+ "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
+ "nodeType": "YulFunctionDefinition",
+ "src": "1553:117:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1721:81:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1731:65:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1746:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "1753:42:16",
+ "type": "",
+ "value": "0xffffffffffffffffffffffffffffffffffffffff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "1742:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1742:54:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1731:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1703:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1713:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1676:126:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1853:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "1863:35:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1892:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint160",
+ "nodeType": "YulIdentifier",
+ "src": "1874:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1874:24:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "1863:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1835:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "1845:7:16",
+ "type": ""
+ }
+ ],
+ "src": "1808:96:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "1953:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2010:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2019:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2022:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2012:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2012:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2012:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "1976:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2001:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "1983:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1983:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "1973:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1973:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "1966:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "1966:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "1963:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "1946:5:16",
+ "type": ""
+ }
+ ],
+ "src": "1910:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2090:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2100:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2122:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2109:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2109:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2100:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2165:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2138:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2138:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2138:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2068:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2076:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2084:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2038:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2228:32:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2238:16:16",
+ "value": {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2249:5:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "2238:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2210:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "2220:7:16",
+ "type": ""
+ }
+ ],
+ "src": "2183:77:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2309:79:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2366:16:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2375:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2378:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "2368:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2368:12:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2368:12:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2332:5:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2357:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2339:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2339:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "2329:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2329:35:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "2322:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2322:43:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2319:63:16"
+ }
+ ]
+ },
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2302:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2266:122:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2446:87:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "2456:29:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2478:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "calldataload",
+ "nodeType": "YulIdentifier",
+ "src": "2465:12:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2465:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2456:5:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "2521:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "validator_revert_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2494:26:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2494:33:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2494:33:16"
+ }
+ ]
+ },
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2424:6:16",
+ "type": ""
+ },
+ {
+ "name": "end",
+ "nodeType": "YulTypedName",
+ "src": "2432:3:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "2440:5:16",
+ "type": ""
+ }
+ ],
+ "src": "2394:139:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2622:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "2668:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "2670:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2670:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "2670:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2643:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2652:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "2639:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2639:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2664:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "2635:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2635:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "2632:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2761:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2776:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2790:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2780:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2805:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2840:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2851:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2836:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2836:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2860:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "2815:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2815:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "2805:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "2888:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "2903:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "2917:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "2907:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "2933:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "2968:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "2979:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "2964:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2964:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "2988:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "2943:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "2943:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "2933:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "2584:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "2595:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "2607:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "2615:6:16",
+ "type": ""
+ }
+ ],
+ "src": "2539:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3061:48:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3071:32:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3096:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3089:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3089:13:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "3082:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3082:21:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "3071:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_bool",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3043:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "3053:7:16",
+ "type": ""
+ }
+ ],
+ "src": "3019:90:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3174:50:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3191:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3211:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_bool",
+ "nodeType": "YulIdentifier",
+ "src": "3196:14:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3196:21:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3184:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3184:34:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3184:34:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3162:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3169:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3115:109:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3322:118:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3332:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3344:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3355:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3340:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3340:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3332:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3406:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3419:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3430:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3415:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3415:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_bool_to_t_bool_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3368:37:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3368:65:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3368:65:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3294:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3306:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3317:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3230:210:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3511:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "3528:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "3551:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "3533:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3533:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "3521:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3521:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3521:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "3499:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "3506:3:16",
+ "type": ""
+ }
+ ],
+ "src": "3446:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3668:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "3678:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3690:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3701:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3686:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3686:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "3678:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "3758:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3771:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3782:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "3767:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3767:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "3714:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3714:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3714:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3640:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3652:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "3663:4:16",
+ "type": ""
+ }
+ ],
+ "src": "3570:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3898:519:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "3944:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "3946:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3946:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "3946:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "3919:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "3928:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "3915:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3915:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "3940:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "3911:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "3911:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "3908:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4037:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4052:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4066:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4056:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4081:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4116:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4127:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4112:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4112:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4136:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4091:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4091:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4081:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4164:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4179:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4193:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4183:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4209:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4244:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4255:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4240:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4240:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4264:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "4219:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4219:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "4209:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "4292:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "4307:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4321:2:16",
+ "type": "",
+ "value": "64"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "4311:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "4337:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4372:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "4383:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4368:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4368:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4392:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "4347:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4347:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "4337:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_addresst_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "3852:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "3863:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "3875:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "3883:6:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "3891:6:16",
+ "type": ""
+ }
+ ],
+ "src": "3798:619:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4466:43:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4476:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4491:5:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4498:4:16",
+ "type": "",
+ "value": "0xff"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "4487:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4487:16:16"
+ },
+ "variableNames": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulIdentifier",
+ "src": "4476:7:16"
+ }
+ ]
+ }
+ ]
+ },
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4448:5:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "cleaned",
+ "nodeType": "YulTypedName",
+ "src": "4458:7:16",
+ "type": ""
+ }
+ ],
+ "src": "4423:86:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4576:51:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "4593:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "4614:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint8",
+ "nodeType": "YulIdentifier",
+ "src": "4598:15:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4598:22:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "4586:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4586:35:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4586:35:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "4564:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "4571:3:16",
+ "type": ""
+ }
+ ],
+ "src": "4515:112:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4727:120:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "4737:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4749:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4760:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4745:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4745:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "4737:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "4813:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4826:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4837:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "4822:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4822:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint8_to_t_uint8_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "4773:39:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4773:67:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4773:67:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4699:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4711:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "4722:4:16",
+ "type": ""
+ }
+ ],
+ "src": "4633:214:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4919:263:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "4965:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "4967:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4967:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "4967:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "4940:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "4949:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "4936:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4936:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "4961:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "4932:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "4932:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "4929:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5058:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5073:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5087:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5077:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5102:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5137:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5148:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5133:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5133:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5157:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5112:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5112:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5102:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "4889:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "4900:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "4912:6:16",
+ "type": ""
+ }
+ ],
+ "src": "4853:329:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5271:391:16",
+ "statements": [
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5317:83:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
+ "nodeType": "YulIdentifier",
+ "src": "5319:77:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5319:79:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5319:79:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5292:7:16"
+ },
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5301:9:16"
+ }
+ ],
+ "functionName": {
+ "name": "sub",
+ "nodeType": "YulIdentifier",
+ "src": "5288:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5288:23:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5313:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "slt",
+ "nodeType": "YulIdentifier",
+ "src": "5284:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5284:32:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5281:119:16"
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5410:117:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5425:15:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5439:1:16",
+ "type": "",
+ "value": "0"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5429:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5454:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5489:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5500:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5485:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5485:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5509:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5464:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5464:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "5454:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "nodeType": "YulBlock",
+ "src": "5537:118:16",
+ "statements": [
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5552:16:16",
+ "value": {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5566:2:16",
+ "type": "",
+ "value": "32"
+ },
+ "variables": [
+ {
+ "name": "offset",
+ "nodeType": "YulTypedName",
+ "src": "5556:6:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "5582:63:16",
+ "value": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "5617:9:16"
+ },
+ {
+ "name": "offset",
+ "nodeType": "YulIdentifier",
+ "src": "5628:6:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "5613:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5613:22:16"
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulIdentifier",
+ "src": "5637:7:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_decode_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "5592:20:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5592:53:16"
+ },
+ "variableNames": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "5582:6:16"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "name": "abi_decode_tuple_t_addresst_address",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "5233:9:16",
+ "type": ""
+ },
+ {
+ "name": "dataEnd",
+ "nodeType": "YulTypedName",
+ "src": "5244:7:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "5256:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "5264:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5188:474:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5696:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5713:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5716:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5706:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5706:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5706:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5810:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5813:4:16",
+ "type": "",
+ "value": "0x22"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "5803:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5803:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5803:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5834:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5837:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "5827:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5827:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "5827:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x22",
+ "nodeType": "YulFunctionDefinition",
+ "src": "5668:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "5905:269:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "5915:22:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5929:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5935:1:16",
+ "type": "",
+ "value": "2"
+ }
+ ],
+ "functionName": {
+ "name": "div",
+ "nodeType": "YulIdentifier",
+ "src": "5925:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5925:12:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "5915:6:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulVariableDeclaration",
+ "src": "5946:38:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "data",
+ "nodeType": "YulIdentifier",
+ "src": "5976:4:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "5982:1:16",
+ "type": "",
+ "value": "1"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "5972:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5972:12:16"
+ },
+ "variables": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulTypedName",
+ "src": "5950:18:16",
+ "type": ""
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6023:51:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6037:27:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6051:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6059:4:16",
+ "type": "",
+ "value": "0x7f"
+ }
+ ],
+ "functionName": {
+ "name": "and",
+ "nodeType": "YulIdentifier",
+ "src": "6047:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6047:17:16"
+ },
+ "variableNames": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6037:6:16"
+ }
+ ]
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6003:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "iszero",
+ "nodeType": "YulIdentifier",
+ "src": "5996:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "5996:26:16"
+ },
+ "nodeType": "YulIf",
+ "src": "5993:81:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6126:42:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x22",
+ "nodeType": "YulIdentifier",
+ "src": "6140:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6140:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6140:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "outOfPlaceEncoding",
+ "nodeType": "YulIdentifier",
+ "src": "6090:18:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "length",
+ "nodeType": "YulIdentifier",
+ "src": "6113:6:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6121:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "lt",
+ "nodeType": "YulIdentifier",
+ "src": "6110:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6110:14:16"
+ }
+ ],
+ "functionName": {
+ "name": "eq",
+ "nodeType": "YulIdentifier",
+ "src": "6087:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6087:38:16"
+ },
+ "nodeType": "YulIf",
+ "src": "6084:84:16"
+ }
+ ]
+ },
+ "name": "extract_byte_array_length",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "data",
+ "nodeType": "YulTypedName",
+ "src": "5889:4:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "length",
+ "nodeType": "YulTypedName",
+ "src": "5898:6:16",
+ "type": ""
+ }
+ ],
+ "src": "5854:320:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6245:53:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "pos",
+ "nodeType": "YulIdentifier",
+ "src": "6262:3:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "value",
+ "nodeType": "YulIdentifier",
+ "src": "6285:5:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_address",
+ "nodeType": "YulIdentifier",
+ "src": "6267:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6267:24:16"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "6255:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6255:37:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6255:37:16"
+ }
+ ]
+ },
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "value",
+ "nodeType": "YulTypedName",
+ "src": "6233:5:16",
+ "type": ""
+ },
+ {
+ "name": "pos",
+ "nodeType": "YulTypedName",
+ "src": "6240:3:16",
+ "type": ""
+ }
+ ],
+ "src": "6180:118:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6458:288:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6468:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6480:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6491:2:16",
+ "type": "",
+ "value": "96"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6476:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6476:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6468:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6548:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6561:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6572:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6557:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6557:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6504:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6504:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6504:71:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value1",
+ "nodeType": "YulIdentifier",
+ "src": "6629:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6642:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6653:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6638:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6638:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6585:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6585:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6585:72:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value2",
+ "nodeType": "YulIdentifier",
+ "src": "6711:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6724:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6735:2:16",
+ "type": "",
+ "value": "64"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6720:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6720:18:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_uint256_to_t_uint256_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6667:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6667:72:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6667:72:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6414:9:16",
+ "type": ""
+ },
+ {
+ "name": "value2",
+ "nodeType": "YulTypedName",
+ "src": "6426:6:16",
+ "type": ""
+ },
+ {
+ "name": "value1",
+ "nodeType": "YulTypedName",
+ "src": "6434:6:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6442:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6453:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6304:442:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "6850:124:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "6860:26:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6872:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6883:2:16",
+ "type": "",
+ "value": "32"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6868:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6868:18:16"
+ },
+ "variableNames": [
+ {
+ "name": "tail",
+ "nodeType": "YulIdentifier",
+ "src": "6860:4:16"
+ }
+ ]
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "name": "value0",
+ "nodeType": "YulIdentifier",
+ "src": "6940:6:16"
+ },
+ {
+ "arguments": [
+ {
+ "name": "headStart",
+ "nodeType": "YulIdentifier",
+ "src": "6953:9:16"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "6964:1:16",
+ "type": "",
+ "value": "0"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "6949:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6949:17:16"
+ }
+ ],
+ "functionName": {
+ "name": "abi_encode_t_address_to_t_address_fromStack",
+ "nodeType": "YulIdentifier",
+ "src": "6896:43:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "6896:71:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "6896:71:16"
+ }
+ ]
+ },
+ "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "headStart",
+ "nodeType": "YulTypedName",
+ "src": "6822:9:16",
+ "type": ""
+ },
+ {
+ "name": "value0",
+ "nodeType": "YulTypedName",
+ "src": "6834:6:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "tail",
+ "nodeType": "YulTypedName",
+ "src": "6845:4:16",
+ "type": ""
+ }
+ ],
+ "src": "6752:222:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7008:152:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7025:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7028:77:16",
+ "type": "",
+ "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7018:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7018:88:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7018:88:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7122:1:16",
+ "type": "",
+ "value": "4"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7125:4:16",
+ "type": "",
+ "value": "0x11"
+ }
+ ],
+ "functionName": {
+ "name": "mstore",
+ "nodeType": "YulIdentifier",
+ "src": "7115:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7115:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7115:15:16"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7146:1:16",
+ "type": "",
+ "value": "0"
+ },
+ {
+ "kind": "number",
+ "nodeType": "YulLiteral",
+ "src": "7149:4:16",
+ "type": "",
+ "value": "0x24"
+ }
+ ],
+ "functionName": {
+ "name": "revert",
+ "nodeType": "YulIdentifier",
+ "src": "7139:6:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7139:15:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7139:15:16"
+ }
+ ]
+ },
+ "name": "panic_error_0x11",
+ "nodeType": "YulFunctionDefinition",
+ "src": "6980:180:16"
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7210:147:16",
+ "statements": [
+ {
+ "nodeType": "YulAssignment",
+ "src": "7220:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7243:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7225:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7225:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7220:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7254:25:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7277:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "cleanup_t_uint256",
+ "nodeType": "YulIdentifier",
+ "src": "7259:17:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7259:20:16"
+ },
+ "variableNames": [
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7254:1:16"
+ }
+ ]
+ },
+ {
+ "nodeType": "YulAssignment",
+ "src": "7288:16:16",
+ "value": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7299:1:16"
+ },
+ {
+ "name": "y",
+ "nodeType": "YulIdentifier",
+ "src": "7302:1:16"
+ }
+ ],
+ "functionName": {
+ "name": "add",
+ "nodeType": "YulIdentifier",
+ "src": "7295:3:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7295:9:16"
+ },
+ "variableNames": [
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7288:3:16"
+ }
+ ]
+ },
+ {
+ "body": {
+ "nodeType": "YulBlock",
+ "src": "7328:22:16",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [],
+ "functionName": {
+ "name": "panic_error_0x11",
+ "nodeType": "YulIdentifier",
+ "src": "7330:16:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7330:18:16"
+ },
+ "nodeType": "YulExpressionStatement",
+ "src": "7330:18:16"
+ }
+ ]
+ },
+ "condition": {
+ "arguments": [
+ {
+ "name": "x",
+ "nodeType": "YulIdentifier",
+ "src": "7320:1:16"
+ },
+ {
+ "name": "sum",
+ "nodeType": "YulIdentifier",
+ "src": "7323:3:16"
+ }
+ ],
+ "functionName": {
+ "name": "gt",
+ "nodeType": "YulIdentifier",
+ "src": "7317:2:16"
+ },
+ "nodeType": "YulFunctionCall",
+ "src": "7317:10:16"
+ },
+ "nodeType": "YulIf",
+ "src": "7314:36:16"
+ }
+ ]
+ },
+ "name": "checked_add_t_uint256",
+ "nodeType": "YulFunctionDefinition",
+ "parameters": [
+ {
+ "name": "x",
+ "nodeType": "YulTypedName",
+ "src": "7197:1:16",
+ "type": ""
+ },
+ {
+ "name": "y",
+ "nodeType": "YulTypedName",
+ "src": "7200:1:16",
+ "type": ""
+ }
+ ],
+ "returnVariables": [
+ {
+ "name": "sum",
+ "nodeType": "YulTypedName",
+ "src": "7206:3:16",
+ "type": ""
+ }
+ ],
+ "src": "7166:191:16"
+ }
+ ]
+ },
+ "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n}\n",
+ "id": 16,
+ "language": "Yul",
+ "name": "#utility.yul"
+ }
+ ],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x9E JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40C10F19 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x15D JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x179 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1A9 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1F7 JUMPI PUSH2 0x9E JUMP JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xA3 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xC1 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0xF1 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x10F JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xAB PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xDB PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xD6 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x2B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF9 PUSH2 0x2DC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x106 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x129 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x124 SWAP2 SWAP1 PUSH2 0xCBB JUMP JUMPDEST PUSH2 0x2E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x136 SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x147 PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x154 SWAP2 SWAP1 PUSH2 0xD2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x177 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x172 SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x31E JUMP JUMPDEST STOP JUMPDEST PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18E SWAP2 SWAP1 PUSH2 0xD45 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1A0 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B1 PUSH2 0x374 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0xB60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DC SWAP2 SWAP1 PUSH2 0xC1B JUMP JUMPDEST PUSH2 0x406 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1EE SWAP2 SWAP1 PUSH2 0xC76 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x211 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x20C SWAP2 SWAP1 PUSH2 0xD72 JUMP JUMPDEST PUSH2 0x429 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x21E SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x236 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x262 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x2AF JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x284 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x2AF JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x292 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2C4 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2D1 DUP2 DUP6 DUP6 PUSH2 0x4B8 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2F1 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FE DUP6 DUP3 DUP6 PUSH2 0x4CA JUMP JUMPDEST PUSH2 0x309 DUP6 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x12 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x328 DUP3 DUP3 PUSH2 0x652 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x383 SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x3AF SWAP1 PUSH2 0xDE1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3FC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3D1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3FC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3DF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x411 PUSH2 0x4B0 JUMP JUMPDEST SWAP1 POP PUSH2 0x41E DUP2 DUP6 DUP6 PUSH2 0x55E JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x4C5 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x6D4 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D6 DUP5 DUP5 PUSH2 0x429 JUMP JUMPDEST SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 EQ PUSH2 0x558 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x548 JUMPI DUP3 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xFB8F41B200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x53F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x557 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x6D4 JUMP JUMPDEST JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x5D0 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x96C6FD1E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5C7 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x642 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x639 SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x64D DUP4 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x6C4 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xEC442F0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6BB SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6D0 PUSH1 0x0 DUP4 DUP4 PUSH2 0x8AB JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x746 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xE602DF0500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x73D SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x7B8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x94280D6200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7AF SWAP2 SWAP1 PUSH2 0xE58 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x0 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP DUP1 ISZERO PUSH2 0x8A5 JUMPI DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x89C SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x8FD JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x8F1 SWAP2 SWAP1 PUSH2 0xEA2 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x9D0 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x989 JUMPI DUP4 DUP2 DUP4 PUSH1 0x40 MLOAD PUSH32 0xE450D38C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x980 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xE21 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xA19 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0xA66 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0xAC3 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xB0A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAEF JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB32 DUP3 PUSH2 0xAD0 JUMP JUMPDEST PUSH2 0xB3C DUP2 DUP6 PUSH2 0xADB JUMP JUMPDEST SWAP4 POP PUSH2 0xB4C DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xAEC JUMP JUMPDEST PUSH2 0xB55 DUP2 PUSH2 0xB16 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0xB7A DUP2 DUP5 PUSH2 0xB27 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB2 DUP3 PUSH2 0xB87 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBC2 DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBDF DUP2 PUSH2 0xBB9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBF8 DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP2 EQ PUSH2 0xC03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC15 DUP2 PUSH2 0xBEF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC32 JUMPI PUSH2 0xC31 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC40 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC51 DUP6 DUP3 DUP7 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC70 DUP2 PUSH2 0xC5B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xC8B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC67 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xC9A DUP2 PUSH2 0xBE5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCB5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCE2 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCF3 DUP7 DUP3 DUP8 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0xD04 DUP7 DUP3 DUP8 ADD PUSH2 0xC06 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD24 DUP2 PUSH2 0xD0E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD3F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD1B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD5B JUMPI PUSH2 0xD5A PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD69 DUP5 DUP3 DUP6 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xD89 JUMPI PUSH2 0xD88 PUSH2 0xB82 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD97 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDA8 DUP6 DUP3 DUP7 ADD PUSH2 0xBD0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xDF9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0xE0C JUMPI PUSH2 0xE0B PUSH2 0xDB2 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE1B DUP2 PUSH2 0xBA7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0xE36 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0xE12 JUMP JUMPDEST PUSH2 0xE43 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0xC91 JUMP JUMPDEST PUSH2 0xE50 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xC91 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xE6D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE12 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xEAD DUP3 PUSH2 0xBE5 JUMP JUMPDEST SWAP2 POP PUSH2 0xEB8 DUP4 PUSH2 0xBE5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0xED0 JUMPI PUSH2 0xECF PUSH2 0xE73 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA7 0xF6 MOD 0xAE 0xEB SIGNEXTEND 0xF8 INVALID SWAP3 0xDC INVALID DUP13 NOT 0xC5 0xEC 0xC8 SWAP2 SSTORE 0xB5 0xD3 PUSH3 0x5B0A38 SWAP9 0xDB PUSH27 0x98F43960AB64736F6C634300081400330000000000000000000000 ",
+ "sourceMap": "120:325:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3998:186;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2849:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4776:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;322:87:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3004:116:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1981:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3315:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3551:140;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1779:89;1824:13;1856:5;1849:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:89;:::o;3998:186::-;4071:4;4087:13;4103:12;:10;:12::i;:::-;4087:28;;4125:31;4134:5;4141:7;4150:5;4125:8;:31::i;:::-;4173:4;4166:11;;;3998:186;;;;:::o;2849:97::-;2901:7;2927:12;;2920:19;;2849:97;:::o;4776:244::-;4863:4;4879:15;4897:12;:10;:12::i;:::-;4879:30;;4919:37;4935:4;4941:7;4950:5;4919:15;:37::i;:::-;4966:26;4976:4;4982:2;4986:5;4966:9;:26::i;:::-;5009:4;5002:11;;;4776:244;;;;;:::o;2707:82::-;2756:5;2780:2;2773:9;;2707:82;:::o;322:87:15:-;383:18;389:3;394:6;383:5;:18::i;:::-;322:87;;:::o;3004:116:1:-;3069:7;3095:9;:18;3105:7;3095:18;;;;;;;;;;;;;;;;3088:25;;3004:116;;;:::o;1981:93::-;2028:13;2060:7;2053:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1981:93;:::o;3315:178::-;3384:4;3400:13;3416:12;:10;:12::i;:::-;3400:28;;3438:27;3448:5;3455:2;3459:5;3438:9;:27::i;:::-;3482:4;3475:11;;;3315:178;;;;:::o;3551:140::-;3631:7;3657:11;:18;3669:5;3657:18;;;;;;;;;;;;;;;:27;3676:7;3657:27;;;;;;;;;;;;;;;;3650:34;;3551:140;;;;:::o;656:96:4:-;709:7;735:10;728:17;;656:96;:::o;8726:128:1:-;8810:37;8819:5;8826:7;8835:5;8842:4;8810:8;:37::i;:::-;8726:128;;;:::o;10415:477::-;10514:24;10541:25;10551:5;10558:7;10541:9;:25::i;:::-;10514:52;;10600:17;10580:16;:37;10576:310;;10656:5;10637:16;:24;10633:130;;;10715:7;10724:16;10742:5;10688:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;10633:130;10804:57;10813:5;10820:7;10848:5;10829:16;:24;10855:5;10804:8;:57::i;:::-;10576:310;10504:388;10415:477;;;:::o;5393:300::-;5492:1;5476:18;;:4;:18;;;5472:86;;5544:1;5517:30;;;;;;;;;;;:::i;:::-;;;;;;;;5472:86;5585:1;5571:16;;:2;:16;;;5567:86;;5639:1;5610:32;;;;;;;;;;;:::i;:::-;;;;;;;;5567:86;5662:24;5670:4;5676:2;5680:5;5662:7;:24::i;:::-;5393:300;;;:::o;7458:208::-;7547:1;7528:21;;:7;:21;;;7524:91;;7601:1;7572:32;;;;;;;;;;;:::i;:::-;;;;;;;;7524:91;7624:35;7640:1;7644:7;7653:5;7624:7;:35::i;:::-;7458:208;;:::o;9701:432::-;9830:1;9813:19;;:5;:19;;;9809:89;;9884:1;9855:32;;;;;;;;;;;:::i;:::-;;;;;;;;9809:89;9930:1;9911:21;;:7;:21;;;9907:90;;9983:1;9955:31;;;;;;;;;;;:::i;:::-;;;;;;;;9907:90;10036:5;10006:11;:18;10018:5;10006:18;;;;;;;;;;;;;;;:27;10025:7;10006:27;;;;;;;;;;;;;;;:35;;;;10055:9;10051:76;;;10101:7;10085:31;;10094:5;10085:31;;;10110:5;10085:31;;;;;;:::i;:::-;;;;;;;;10051:76;9701:432;;;;:::o;6008:1107::-;6113:1;6097:18;;:4;:18;;;6093:540;;6249:5;6233:12;;:21;;;;;;;:::i;:::-;;;;;;;;6093:540;;;6285:19;6307:9;:15;6317:4;6307:15;;;;;;;;;;;;;;;;6285:37;;6354:5;6340:11;:19;6336:115;;;6411:4;6417:11;6430:5;6386:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;6336:115;6603:5;6589:11;:19;6571:9;:15;6581:4;6571:15;;;;;;;;;;;;;;;:37;;;;6271:362;6093:540;6661:1;6647:16;;:2;:16;;;6643:425;;6826:5;6810:12;;:21;;;;;;;;;;;6643:425;;;7038:5;7021:9;:13;7031:2;7021:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;6643:425;7098:2;7083:25;;7092:4;7083:25;;;7102:5;7083:25;;;;;;:::i;:::-;;;;;;;;6008:1107;;;:::o;7:99:16:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:180::-;5716:77;5713:1;5706:88;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5854:320;5898:6;5935:1;5929:4;5925:12;5915:22;;5982:1;5976:4;5972:12;6003:18;5993:81;;6059:4;6051:6;6047:17;6037:27;;5993:81;6121:2;6113:6;6110:14;6090:18;6087:38;6084:84;;6140:18;;:::i;:::-;6084:84;5905:269;5854:320;;;:::o;6180:118::-;6267:24;6285:5;6267:24;:::i;:::-;6262:3;6255:37;6180:118;;:::o;6304:442::-;6453:4;6491:2;6480:9;6476:18;6468:26;;6504:71;6572:1;6561:9;6557:17;6548:6;6504:71;:::i;:::-;6585:72;6653:2;6642:9;6638:18;6629:6;6585:72;:::i;:::-;6667;6735:2;6724:9;6720:18;6711:6;6667:72;:::i;:::-;6304:442;;;;;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:180::-;7028:77;7025:1;7018:88;7125:4;7122:1;7115:15;7149:4;7146:1;7139:15;7166:191;7206:3;7225:20;7243:1;7225:20;:::i;:::-;7220:25;;7259:20;7277:1;7259:20;:::i;:::-;7254:25;;7302:1;7299;7295:9;7288:16;;7323:3;7320:1;7317:10;7314:36;;;7330:18;;:::i;:::-;7314:36;7166:191;;;;:::o"
+ },
+ "methodIdentifiers": {
+ "allowance(address,address)": "dd62ed3e",
+ "approve(address,uint256)": "095ea7b3",
+ "balanceOf(address)": "70a08231",
+ "decimals()": "313ce567",
+ "mint(address,uint256)": "40c10f19",
+ "name()": "06fdde03",
+ "symbol()": "95d89b41",
+ "totalSupply()": "18160ddd",
+ "transfer(address,uint256)": "a9059cbb",
+ "transferFrom(address,address,uint256)": "23b872dd"
+ }
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/core/wrapped-native-token/WEdu.sol\":\"WrappedEduToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xbf61ab2ae1d575a17ea58fbb99ca232baddcc4e0eeea180e84cbc74b0c348b31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e0968705bad99747a8e5288aa008678c2be2f471f919dce3925a3cc4f1dee09\",\"dweb:/ipfs/QmbAFnCQfo4tw6ssfQSjhA5LzwHWNNryXN8bX7ty8jiqqn\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"contracts/core/wrapped-native-token/WEdu.sol\":{\"keccak256\":\"0x0e77a55918a3e8b9f3ad3c47b4a00f30e7c01e54b020ab9c6dbdb183ff3327c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea886a6d9652fa622008f2e3bac165b09329d1bdefdc89bce5fcc1373c8343df\",\"dweb:/ipfs/QmQ1kQ6AnmSbzT1vhdSkf2ExvgXKwDPhgzsp1gLWj21mER\"]}},\"version\":1}"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-1115/journal.jsonl b/Core uniswap/ignition/deployments/chain-1115/journal.jsonl
new file mode 100644
index 00000000..a4a66d8d
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-1115/journal.jsonl
@@ -0,0 +1,4 @@
+
+{"chainId":1115,"type":"DEPLOYMENT_INITIALIZE"}
+{"artifactId":"CherryTokenModule#CherryToken","constructorArgs":[],"contractName":"CherryToken","dependencies":[],"from":"0xf5c87bfce1999d3e48f0407e43f0db10394a4b37","futureId":"CherryTokenModule#CherryToken","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}}
+{"futureId":"CherryTokenModule#CherryToken","networkInteraction":{"data":"0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json
new file mode 100644
index 00000000..84fd58fd
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\455be90ea7dff1b385f62d8e4fced657.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json
new file mode 100644
index 00000000..7e0be554
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/AppleTokenModule#AppleToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "AppleToken",
+ "sourceName": "contracts/core/wrapped-native-token/Apple.Token.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600581526020017f4170706c650000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f415054000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220ead1a05898bad69f6932dcc19a99a095143e41d8881ac5f16f88818758bfa1f164736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json
new file mode 100644
index 00000000..84fd58fd
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\455be90ea7dff1b385f62d8e4fced657.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json
new file mode 100644
index 00000000..a4d5abd0
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/CherryTokenModule#CherryToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "CherryToken",
+ "sourceName": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600681526020017f43686572727900000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f434854000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220b2dc0315471f3a3165742e075b8bd1304612284192c361c4d0836f34c9c9972a64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json
new file mode 100644
index 00000000..5d49b9b3
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\b58a32b7e115e25f756aa700ce5572e8.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json
new file mode 100644
index 00000000..bbf02dc5
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/LiquidityProviderModule#LiquidityProvider.json
@@ -0,0 +1,159 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "LiquidityProvider",
+ "sourceName": "contracts/core/LiquidityProvider.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_factoryAddress",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_WEDU",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "LiquidityProvider__InsufficientOutputAmount",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenADesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOfTokenBDesired",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "minTokenB",
+ "type": "uint256"
+ }
+ ],
+ "name": "addLiquidity",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountA",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountB",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "liquidity",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "pair",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "getAmountsOut",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amountIn",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amountOutMin",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address[]",
+ "name": "path",
+ "type": "address[]"
+ }
+ ],
+ "name": "swapExactTokensForTokens",
+ "outputs": [
+ {
+ "internalType": "uint256[]",
+ "name": "amounts",
+ "type": "uint256[]"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60c06040523480156200001157600080fd5b5060405162001b9638038062001b96833981810160405281019062000037919062000111565b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1681525050505062000158565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000d982620000ac565b9050919050565b620000eb81620000cc565b8114620000f757600080fd5b50565b6000815190506200010b81620000e0565b92915050565b600080604083850312156200012b576200012a620000a7565b5b60006200013b85828601620000fa565b92505060206200014e85828601620000fa565b9150509250929050565b60805160a051611a076200018f600039600050506000818160f7015281816103280152818161079401526108680152611a076000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80633351733f1461004657806386818f2614610078578063bb7b9c76146100a8575b600080fd5b610060600480360381019061005b9190610f5e565b6100d8565b60405161006f93929190610ffa565b60405180910390f35b610092600480360381019061008d9190611096565b610322565b60405161009f91906111c8565b60405180910390f35b6100c260048036038101906100bd9190611339565b6105df565b6040516100cf91906111c8565b60405180910390f35b60008060006100eb89898989898961078d565b809350819450505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8b8b6040518363ffffffff1660e01b81526004016101509291906113b7565b6020604051808303816000875af115801561016f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019391906113f5565b90508973ffffffffffffffffffffffffffffffffffffffff166323b872dd3383876040518463ffffffff1660e01b81526004016101d293929190611422565b6020604051808303816000875af11580156101f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102159190611491565b508873ffffffffffffffffffffffffffffffffffffffff166323b872dd3383866040518463ffffffff1660e01b815260040161025393929190611422565b6020604051808303816000875af1158015610272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102969190611491565b508073ffffffffffffffffffffffffffffffffffffffff16636a627842336040518263ffffffff1660e01b81526004016102d091906114be565b6020604051808303816000875af11580156102ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031391906114ee565b91505096509650969350505050565b606060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e858560008181106103765761037561151b565b5b905060200201602081019061038b919061154a565b8686600181811061039f5761039e61151b565b5b90506020020160208101906103b4919061154a565b6040518363ffffffff1660e01b81526004016103d19291906113b7565b6020604051808303816000875af11580156103f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041491906113f5565b90506104628187868680806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506105df565b915084826001845161047491906115a6565b815181106104855761048461151b565b5b602002602001015110156104c5576040517fdec0fbbe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b838360008181106104d9576104d861151b565b5b90506020020160208101906104ee919061154a565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33838560008151811061051f5761051e61151b565b5b60200260200101516040518463ffffffff1660e01b815260040161054593929190611422565b6020604051808303816000875af1158015610564573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105889190611491565b506105d682858580806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050508333610a75565b50949350505050565b6060600282511015610626576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061d90611637565b60405180910390fd5b815167ffffffffffffffff811115610641576106406111fb565b5b60405190808252806020026020018201604052801561066f5781602001602082028036833780820191505090505b50905082816000815181106106875761068661151b565b5b60200260200101818152505060005b600183516106a491906115a6565b811015610785576000808673ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa1580156106f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071c9190611657565b915091506107458484815181106107365761073561151b565b5b60200260200101518383610bff565b846001856107539190611697565b815181106107645761076361151b565b5b6020026020010181815250505050808061077d906116cb565b915050610696565b509392505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16634a70f02e8a8a6040518363ffffffff1660e01b81526004016107ed9291906113b7565b6020604051808303816000875af115801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906113f5565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610907577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e34336158a8a6040518363ffffffff1660e01b81526004016108c19291906113b7565b6020604051808303816000875af11580156108e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090491906113f5565b90505b6000808273ffffffffffffffffffffffffffffffffffffffff1663b9cf50056040518163ffffffff1660e01b81526004016040805180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190611657565b9150915060008214801561098c5750600081145b156109a05788888095508196505050610a67565b60006109ad8a8484610ce9565b90508881116109ff57868110156109f0576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b89818096508197505050610a65565b6000610a0c8a8486610ce9565b90508a811115610a1f57610a1e611713565b5b88811015610a59576040517fd036864900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808a8097508198505050505b505b505050965096945050505050565b60005b60018451610a8691906115a6565b811015610bf857600080858381518110610aa357610aa261151b565b5b602002602001015186600185610ab99190611697565b81518110610aca57610ac961151b565b5b6020026020010151915091506000610ae28383610d9c565b509050600088600186610af59190611697565b81518110610b0657610b0561151b565b5b602002602001015190506000808373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614610b4e57600083610b52565b8260005b915091508873ffffffffffffffffffffffffffffffffffffffff16636d9a640a848d8a81518110610b8657610b8561151b565b5b60200260200101518b6040518463ffffffff1660e01b8152600401610bad93929190611742565b600060405180830381600087803b158015610bc757600080fd5b505af1158015610bdb573d6000803e3d6000fd5b505050505050505050508080610bf0906116cb565b915050610a78565b5050505050565b6000808411610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906117eb565b60405180910390fd5b600083118015610c535750600082115b610c92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c899061187d565b60405180910390fd5b60006103e585610ca2919061189d565b905060008382610cb2919061189d565b90506000826103e887610cc5919061189d565b610ccf9190611697565b90508082610cdd919061190e565b93505050509392505050565b6000808411610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d24906119b1565b60405180910390fd5b600083118015610d3d5750600082115b610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d739061187d565b60405180910390fd5b828285610d89919061189d565b610d93919061190e565b90509392505050565b6000808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e04576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610e3e578284610e41565b83835b8092508193505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610eaf576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9250929050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610ef582610eca565b9050919050565b610f0581610eea565b8114610f1057600080fd5b50565b600081359050610f2281610efc565b92915050565b6000819050919050565b610f3b81610f28565b8114610f4657600080fd5b50565b600081359050610f5881610f32565b92915050565b60008060008060008060c08789031215610f7b57610f7a610ec0565b5b6000610f8989828a01610f13565b9650506020610f9a89828a01610f13565b9550506040610fab89828a01610f49565b9450506060610fbc89828a01610f49565b9350506080610fcd89828a01610f49565b92505060a0610fde89828a01610f49565b9150509295509295509295565b610ff481610f28565b82525050565b600060608201905061100f6000830186610feb565b61101c6020830185610feb565b6110296040830184610feb565b949350505050565b600080fd5b600080fd5b600080fd5b60008083601f84011261105657611055611031565b5b8235905067ffffffffffffffff81111561107357611072611036565b5b60208301915083602082028301111561108f5761108e61103b565b5b9250929050565b600080600080606085870312156110b0576110af610ec0565b5b60006110be87828801610f49565b94505060206110cf87828801610f49565b935050604085013567ffffffffffffffff8111156110f0576110ef610ec5565b5b6110fc87828801611040565b925092505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61113f81610f28565b82525050565b60006111518383611136565b60208301905092915050565b6000602082019050919050565b60006111758261110a565b61117f8185611115565b935061118a83611126565b8060005b838110156111bb5781516111a28882611145565b97506111ad8361115d565b92505060018101905061118e565b5085935050505092915050565b600060208201905081810360008301526111e2818461116a565b905092915050565b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611233826111ea565b810181811067ffffffffffffffff82111715611252576112516111fb565b5b80604052505050565b6000611265610eb6565b9050611271828261122a565b919050565b600067ffffffffffffffff821115611291576112906111fb565b5b602082029050602081019050919050565b60006112b56112b084611276565b61125b565b905080838252602082019050602084028301858111156112d8576112d761103b565b5b835b8181101561130157806112ed8882610f13565b8452602084019350506020810190506112da565b5050509392505050565b600082601f8301126113205761131f611031565b5b81356113308482602086016112a2565b91505092915050565b60008060006060848603121561135257611351610ec0565b5b600061136086828701610f13565b935050602061137186828701610f49565b925050604084013567ffffffffffffffff81111561139257611391610ec5565b5b61139e8682870161130b565b9150509250925092565b6113b181610eea565b82525050565b60006040820190506113cc60008301856113a8565b6113d960208301846113a8565b9392505050565b6000815190506113ef81610efc565b92915050565b60006020828403121561140b5761140a610ec0565b5b6000611419848285016113e0565b91505092915050565b600060608201905061143760008301866113a8565b61144460208301856113a8565b6114516040830184610feb565b949350505050565b60008115159050919050565b61146e81611459565b811461147957600080fd5b50565b60008151905061148b81611465565b92915050565b6000602082840312156114a7576114a6610ec0565b5b60006114b58482850161147c565b91505092915050565b60006020820190506114d360008301846113a8565b92915050565b6000815190506114e881610f32565b92915050565b60006020828403121561150457611503610ec0565b5b6000611512848285016114d9565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156115605761155f610ec0565b5b600061156e84828501610f13565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006115b182610f28565b91506115bc83610f28565b92508282039050818111156115d4576115d3611577565b5b92915050565b600082825260208201905092915050565b7f556e697377617056324c6962726172793a20494e56414c49445f504154480000600082015250565b6000611621601e836115da565b915061162c826115eb565b602082019050919050565b6000602082019050818103600083015261165081611614565b9050919050565b6000806040838503121561166e5761166d610ec0565b5b600061167c858286016114d9565b925050602061168d858286016114d9565b9150509250929050565b60006116a282610f28565b91506116ad83610f28565b92508282019050808211156116c5576116c4611577565b5b92915050565b60006116d682610f28565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361170857611707611577565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b60006060820190506117576000830186610feb565b6117646020830185610feb565b61177160408301846113a8565b949350505050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4960008201527f4e5055545f414d4f554e54000000000000000000000000000000000000000000602082015250565b60006117d5602b836115da565b91506117e082611779565b604082019050919050565b60006020820190508181036000830152611804816117c8565b9050919050565b7f556e697377617056324c6962726172793a20494e53554646494349454e545f4c60008201527f4951554944495459000000000000000000000000000000000000000000000000602082015250565b60006118676028836115da565b91506118728261180b565b604082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b60006118a882610f28565b91506118b383610f28565b92508282026118c181610f28565b915082820484148315176118d8576118d7611577565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061191982610f28565b915061192483610f28565b925082611934576119336118df565b5b828204905092915050565b7f556e69737761705632446566694c6962726172793a20494e535546464943494560008201527f4e545f414d4f554e540000000000000000000000000000000000000000000000602082015250565b600061199b6029836115da565b91506119a68261193f565b604082019050919050565b600060208201905081810360008301526119ca8161198e565b905091905056fea264697066735822122092549c913328fc3f1bfb76ea0bca2a71f2396795569e18d87d12df86092a52ae64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json
new file mode 100644
index 00000000..5b157de3
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\e7e96229427b7faa67d9ec35320a6b93.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json
new file mode 100644
index 00000000..0f470a56
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/PoolFactoryModule#PoolFactory.json
@@ -0,0 +1,154 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "PoolFactory",
+ "sourceName": "contracts/core/Factory.sol",
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__IdenticalAddress",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__NotSetter",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__PoolExists",
+ "type": "error"
+ },
+ {
+ "inputs": [],
+ "name": "PoolFactory__ZeroAddress",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "name": "PoolCreated",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "addToFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "createPool",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "poolAddress",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_tokenA",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "_tokenB",
+ "type": "address"
+ }
+ ],
+ "name": "getTokenPairs",
+ "outputs": [
+ {
+ "internalType": "address",
+ "name": "",
+ "type": "address"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiverSetter",
+ "type": "address"
+ }
+ ],
+ "name": "removeFromFeeReceiverSetter",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_feeReceiver",
+ "type": "address"
+ }
+ ],
+ "name": "setFeeReceiver",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x608060405234801561001057600080fd5b50604051612f73380380612f73833981810160405281019061003291906100f2565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505061011f565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100bf82610094565b9050919050565b6100cf816100b4565b81146100da57600080fd5b50565b6000815190506100ec816100c6565b92915050565b6000602082840312156101085761010761008f565b5b6000610116848285016100dd565b91505092915050565b612e458061012e6000396000f3fe60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b50600436106200005e5760003560e01c80634839702314620000635780634a70f02e14620000835780635ac40ab314620000b9578063e343361514620000d9578063efdcd974146200010f575b600080fd5b6200008160048036038101906200007b9190620008fe565b6200012f565b005b620000a160048036038101906200009b919062000930565b62000194565b604051620000b0919062000988565b60405180910390f35b620000d76004803603810190620000d19190620008fe565b6200023b565b005b620000f76004803603810190620000f1919062000930565b6200029f565b60405162000106919062000988565b60405180910390f35b6200012d6004803603810190620001279190620008fe565b620007ad565b005b62000139620007fa565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b62000245620007fa565b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000307576040517f4bea99d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034657838562000349565b84845b91509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620003b4576040517f74b959e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004b7576040517f423d793500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180602001620004cb9062000886565b6020820181038252601f19601f82011660405250905060008686604051602001620004f8929190620009f5565b604051602081830303815290604052805190602001209050808251602084016000f594508473ffffffffffffffffffffffffffffffffffffffff1663f09a401688886040518363ffffffff1660e01b81526004016200055992919062000a25565b600060405180830381600087803b1580156200057457600080fd5b505af115801562000589573d6000803e3d6000fd5b5050505084600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003859080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f9c5d829b9b23efc461f9aeef91979ec04bb903feb3bee4f26d22114abfc7335b8484876040516200079b9392919062000a52565b60405180910390a15050505092915050565b620007b7620007fa565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690508062000883576040517fe9e1731800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b6123808062000a9083390190565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008c68262000899565b9050919050565b620008d881620008b9565b8114620008e457600080fd5b50565b600081359050620008f881620008cd565b92915050565b60006020828403121562000917576200091662000894565b5b60006200092784828501620008e7565b91505092915050565b600080604083850312156200094a576200094962000894565b5b60006200095a85828601620008e7565b92505060206200096d85828601620008e7565b9150509250929050565b6200098281620008b9565b82525050565b60006020820190506200099f600083018462000977565b92915050565b60008160601b9050919050565b6000620009bf82620009a5565b9050919050565b6000620009d382620009b2565b9050919050565b620009ef620009e982620008b9565b620009c6565b82525050565b600062000a038285620009da565b60148201915062000a158284620009da565b6014820191508190509392505050565b600060408201905062000a3c600083018562000977565b62000a4b602083018462000977565b9392505050565b600060608201905062000a69600083018662000977565b62000a78602083018562000977565b62000a87604083018462000977565b94935050505056fe60a06040523480156200001157600080fd5b506040518060400160405280600f81526020017f4c6971756964697479546f6b656e7300000000000000000000000000000000008152506040518060400160405280600281526020017f4c5000000000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000358565b508060049081620000a1919062000358565b5050503373ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506200043f565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200016057607f821691505b60208210810362000176576200017562000118565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620001a1565b620001ec8683620001a1565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000239620002336200022d8462000204565b6200020e565b62000204565b9050919050565b6000819050919050565b620002558362000218565b6200026d620002648262000240565b848454620001ae565b825550505050565b600090565b6200028462000275565b620002918184846200024a565b505050565b5b81811015620002b957620002ad6000826200027a565b60018101905062000297565b5050565b601f8211156200030857620002d2816200017c565b620002dd8462000191565b81016020851015620002ed578190505b62000305620002fc8562000191565b83018262000296565b50505b505050565b600082821c905092915050565b60006200032d600019846008026200030d565b1980831691505092915050565b60006200034883836200031a565b9150826002028217905092915050565b6200036382620000de565b67ffffffffffffffff8111156200037f576200037e620000e9565b5b6200038b825462000147565b62000398828285620002bd565b600060209050601f831160018114620003d05760008415620003bb578287015190505b620003c785826200033a565b86555062000437565b601f198416620003e0866200017c565b60005b828110156200040a57848901518255600182019150602085019450602081019050620003e3565b868310156200042a578489015162000426601f8916826200031a565b8355505b6001600288020188555050505b505050505050565b608051611f256200045b6000396000610f580152611f256000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806374a0f94b11610097578063ba9a7a5611610066578063ba9a7a56146102d9578063dd62ed3e146102f7578063f09a401614610327578063fff6cae91461034357610100565b806374a0f94b1461023b57806395d89b411461026c578063a9059cbb1461028a578063b9cf5005146102ba57610100565b8063313ce567116100d3578063313ce567146101a15780636a627842146101bf5780636d9a640a146101ef57806370a082311461020b57610100565b806306fdde0314610105578063095ea7b31461012357806318160ddd1461015357806323b872dd14610171575b600080fd5b61010d61034d565b60405161011a9190611963565b60405180910390f35b61013d60048036038101906101389190611a1e565b6103df565b60405161014a9190611a79565b60405180910390f35b61015b610402565b6040516101689190611aa3565b60405180910390f35b61018b60048036038101906101869190611abe565b61040c565b6040516101989190611a79565b60405180910390f35b6101a961043b565b6040516101b69190611b2d565b60405180910390f35b6101d960048036038101906101d49190611b48565b610444565b6040516101e69190611aa3565b60405180910390f35b61020960048036038101906102049190611b75565b610691565b005b61022560048036038101906102209190611b48565b61099d565b6040516102329190611aa3565b60405180910390f35b61025560048036038101906102509190611b48565b6109e5565b604051610263929190611bc8565b60405180910390f35b610274610dec565b6040516102819190611963565b60405180910390f35b6102a4600480360381019061029f9190611a1e565b610e7e565b6040516102b19190611a79565b60405180910390f35b6102c2610ea1565b6040516102d0929190611bc8565b60405180910390f35b6102e1610eb2565b6040516102ee9190611aa3565b60405180910390f35b610311600480360381019061030c9190611bf1565b610eb8565b60405161031e9190611aa3565b60405180910390f35b610341600480360381019061033c9190611bf1565b610f3f565b005b61034b61104a565b005b60606003805461035c90611c60565b80601f016020809104026020016040519081016040528092919081815260200182805461038890611c60565b80156103d55780601f106103aa576101008083540402835291602001916103d5565b820191906000526020600020905b8154815290600101906020018083116103b857829003601f168201915b5050505050905090565b6000806103ea61118c565b90506103f7818585611194565b600191505092915050565b6000600254905090565b60008061041761118c565b90506104248582856111a6565b61042f85858561123a565b60019150509392505050565b60006012905090565b6000806000610451610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104b29190611ca0565b602060405180830381865afa1580156104cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f39190611cd0565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105529190611ca0565b602060405180830381865afa15801561056f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105939190611cd0565b9050600084836105a39190611d2c565b9050600084836105b39190611d2c565b905060006105bf610402565b9050600081036105fe576103e86105e083856105db9190611d60565b61132e565b6105ea9190611d2c565b97506105f960016103e86113a8565b610637565b61063487828561060e9190611d60565b6106189190611dd1565b8783856106259190611d60565b61062f9190611dd1565b61142a565b97505b60008811610671576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61067b89896113a8565b6106858585611443565b50505050505050919050565b600083111580156106a3575060008211155b156106da576040517f5d125c4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806106e5610ea1565b91509150818511806106f657508084115b1561072d576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000891115610807578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888b6040518363ffffffff1660e01b81526004016107c2929190611e02565b6020604051808303816000875af11580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190611e57565b505b6000881115610890578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb888a6040518363ffffffff1660e01b815260040161084b929190611e02565b6020604051808303816000875af115801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611e57565b505b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016108c99190611ca0565b602060405180830381865afa1580156108e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090a9190611cd0565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109459190611ca0565b602060405180830381865afa158015610962573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109869190611cd0565b925050506109948282611443565b50505050505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000806000806109f3610ea1565b915091506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a809190611ca0565b602060405180830381865afa158015610a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac19190611cd0565b905060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610afe9190611ca0565b602060405180830381865afa158015610b1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3f9190611cd0565b90506000610b4c8a61099d565b90506000610b58610402565b9050808483610b679190611d60565b610b719190611dd1565b9950808383610b809190611d60565b610b8a9190611dd1565b985060008a11158015610b9e575060008911155b15610bd5576040517f24217e5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bdf3083611455565b8573ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8c6040518363ffffffff1660e01b8152600401610c1a929190611e02565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611e57565b508473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8c8b6040518363ffffffff1660e01b8152600401610c99929190611e02565b6020604051808303816000875af1158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdc9190611e57565b508573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d169190611ca0565b602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190611cd0565b93508473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d929190611ca0565b602060405180830381865afa158015610daf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd39190611cd0565b9250610ddf8484611443565b5050505050505050915091565b606060048054610dfb90611c60565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2790611c60565b8015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b600080610e8961118c565b9050610e9681858561123a565b600191505092915050565b600080600754600854915091509091565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1614610fc4576040517f0c18a1fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b61118a600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016110a89190611ca0565b602060405180830381865afa1580156110c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e99190611cd0565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111449190611ca0565b602060405180830381865afa158015611161573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111859190611cd0565b611443565b565b600033905090565b6111a183838360016114d7565b505050565b60006111b28484610eb8565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112345781811015611224578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161121b93929190611e84565b60405180910390fd5b611233848484840360006114d7565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac5760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016112a39190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131e5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016113159190611ca0565b60405180910390fd5b6113298383836116ae565b505050565b60006003821115611395578190506000600160028461134d9190611dd1565b6113579190611ebb565b90505b8181101561138f5780915060028182856113749190611dd1565b61137e9190611ebb565b6113889190611dd1565b905061135a565b506113a3565b600082146113a257600190505b5b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141a5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016114119190611ca0565b60405180910390fd5b611426600083836116ae565b5050565b6000818310611439578161143b565b825b905092915050565b81600781905550806008819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114c75760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016114be9190611ca0565b60405180910390fd5b6114d3826000836116ae565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115495760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016115409190611ca0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115bb5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016115b29190611ca0565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156116a8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161169f9190611aa3565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117005780600260008282546116f49190611ebb565b925050819055506117d3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561178c578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161178393929190611e84565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361181c5780600260008282540392505081905550611869565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118c69190611aa3565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561190d5780820151818401526020810190506118f2565b60008484015250505050565b6000601f19601f8301169050919050565b6000611935826118d3565b61193f81856118de565b935061194f8185602086016118ef565b61195881611919565b840191505092915050565b6000602082019050818103600083015261197d818461192a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119b58261198a565b9050919050565b6119c5816119aa565b81146119d057600080fd5b50565b6000813590506119e2816119bc565b92915050565b6000819050919050565b6119fb816119e8565b8114611a0657600080fd5b50565b600081359050611a18816119f2565b92915050565b60008060408385031215611a3557611a34611985565b5b6000611a43858286016119d3565b9250506020611a5485828601611a09565b9150509250929050565b60008115159050919050565b611a7381611a5e565b82525050565b6000602082019050611a8e6000830184611a6a565b92915050565b611a9d816119e8565b82525050565b6000602082019050611ab86000830184611a94565b92915050565b600080600060608486031215611ad757611ad6611985565b5b6000611ae5868287016119d3565b9350506020611af6868287016119d3565b9250506040611b0786828701611a09565b9150509250925092565b600060ff82169050919050565b611b2781611b11565b82525050565b6000602082019050611b426000830184611b1e565b92915050565b600060208284031215611b5e57611b5d611985565b5b6000611b6c848285016119d3565b91505092915050565b600080600060608486031215611b8e57611b8d611985565b5b6000611b9c86828701611a09565b9350506020611bad86828701611a09565b9250506040611bbe868287016119d3565b9150509250925092565b6000604082019050611bdd6000830185611a94565b611bea6020830184611a94565b9392505050565b60008060408385031215611c0857611c07611985565b5b6000611c16858286016119d3565b9250506020611c27858286016119d3565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611c7857607f821691505b602082108103611c8b57611c8a611c31565b5b50919050565b611c9a816119aa565b82525050565b6000602082019050611cb56000830184611c91565b92915050565b600081519050611cca816119f2565b92915050565b600060208284031215611ce657611ce5611985565b5b6000611cf484828501611cbb565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611d37826119e8565b9150611d42836119e8565b9250828203905081811115611d5a57611d59611cfd565b5b92915050565b6000611d6b826119e8565b9150611d76836119e8565b9250828202611d84816119e8565b91508282048414831517611d9b57611d9a611cfd565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000611ddc826119e8565b9150611de7836119e8565b925082611df757611df6611da2565b5b828204905092915050565b6000604082019050611e176000830185611c91565b611e246020830184611a94565b9392505050565b611e3481611a5e565b8114611e3f57600080fd5b50565b600081519050611e5181611e2b565b92915050565b600060208284031215611e6d57611e6c611985565b5b6000611e7b84828501611e42565b91505092915050565b6000606082019050611e996000830186611c91565b611ea66020830185611a94565b611eb36040830184611a94565b949350505050565b6000611ec6826119e8565b9150611ed1836119e8565b9250828201905080821115611ee957611ee8611cfd565b5b9291505056fea2646970667358221220dca562de9218eaabac8af5bfd655b835c634d9ecfe4c278d7176def13d4a264164736f6c63430008140033a2646970667358221220bb3b5de0370b5bdae75a1d2f7052164d24c77e596796d197d0fb0e42ce836c9564736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json
new file mode 100644
index 00000000..44fecd38
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\6919de14a125c32fee1b7b138baa53da.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json
new file mode 100644
index 00000000..016ad5d9
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenMod#WrappedEduToken.json
@@ -0,0 +1,342 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "WrappedEduToken",
+ "sourceName": "contracts/core/wrapped-native-token/WEdu.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "_to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "mint",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610f0c806200041b6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806340c10f191161006657806340c10f191461015d57806370a082311461017957806395d89b41146101a9578063a9059cbb146101c7578063dd62ed3e146101f75761009e565b806306fdde03146100a3578063095ea7b3146100c157806318160ddd146100f157806323b872dd1461010f578063313ce5671461013f575b600080fd5b6100ab610227565b6040516100b89190610b60565b60405180910390f35b6100db60048036038101906100d69190610c1b565b6102b9565b6040516100e89190610c76565b60405180910390f35b6100f96102dc565b6040516101069190610ca0565b60405180910390f35b61012960048036038101906101249190610cbb565b6102e6565b6040516101369190610c76565b60405180910390f35b610147610315565b6040516101549190610d2a565b60405180910390f35b61017760048036038101906101729190610c1b565b61031e565b005b610193600480360381019061018e9190610d45565b61032c565b6040516101a09190610ca0565b60405180910390f35b6101b1610374565b6040516101be9190610b60565b60405180910390f35b6101e160048036038101906101dc9190610c1b565b610406565b6040516101ee9190610c76565b60405180910390f35b610211600480360381019061020c9190610d72565b610429565b60405161021e9190610ca0565b60405180910390f35b60606003805461023690610de1565b80601f016020809104026020016040519081016040528092919081815260200182805461026290610de1565b80156102af5780601f10610284576101008083540402835291602001916102af565b820191906000526020600020905b81548152906001019060200180831161029257829003601f168201915b5050505050905090565b6000806102c46104b0565b90506102d18185856104b8565b600191505092915050565b6000600254905090565b6000806102f16104b0565b90506102fe8582856104ca565b61030985858561055e565b60019150509392505050565b60006012905090565b6103288282610652565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461038390610de1565b80601f01602080910402602001604051908101604052809291908181526020018280546103af90610de1565b80156103fc5780601f106103d1576101008083540402835291602001916103fc565b820191906000526020600020905b8154815290600101906020018083116103df57829003601f168201915b5050505050905090565b6000806104116104b0565b905061041e81858561055e565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b6104c583838360016106d4565b505050565b60006104d68484610429565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105585781811015610548578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161053f93929190610e21565b60405180910390fd5b610557848484840360006106d4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105d05760006040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016105c79190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106425760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106399190610e58565b60405180910390fd5b61064d8383836108ab565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106c45760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106bb9190610e58565b60405180910390fd5b6106d0600083836108ab565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107465760006040517fe602df0500000000000000000000000000000000000000000000000000000000815260040161073d9190610e58565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107b85760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016107af9190610e58565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156108a5578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c9190610ca0565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036108fd5780600260008282546108f19190610ea2565b925050819055506109d0565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610989578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161098093929190610e21565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a195780600260008282540392505081905550610a66565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ac39190610ca0565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b0a578082015181840152602081019050610aef565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b3282610ad0565b610b3c8185610adb565b9350610b4c818560208601610aec565b610b5581610b16565b840191505092915050565b60006020820190508181036000830152610b7a8184610b27565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bb282610b87565b9050919050565b610bc281610ba7565b8114610bcd57600080fd5b50565b600081359050610bdf81610bb9565b92915050565b6000819050919050565b610bf881610be5565b8114610c0357600080fd5b50565b600081359050610c1581610bef565b92915050565b60008060408385031215610c3257610c31610b82565b5b6000610c4085828601610bd0565b9250506020610c5185828601610c06565b9150509250929050565b60008115159050919050565b610c7081610c5b565b82525050565b6000602082019050610c8b6000830184610c67565b92915050565b610c9a81610be5565b82525050565b6000602082019050610cb56000830184610c91565b92915050565b600080600060608486031215610cd457610cd3610b82565b5b6000610ce286828701610bd0565b9350506020610cf386828701610bd0565b9250506040610d0486828701610c06565b9150509250925092565b600060ff82169050919050565b610d2481610d0e565b82525050565b6000602082019050610d3f6000830184610d1b565b92915050565b600060208284031215610d5b57610d5a610b82565b5b6000610d6984828501610bd0565b91505092915050565b60008060408385031215610d8957610d88610b82565b5b6000610d9785828601610bd0565b9250506020610da885828601610bd0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610df957607f821691505b602082108103610e0c57610e0b610db2565b5b50919050565b610e1b81610ba7565b82525050565b6000606082019050610e366000830186610e12565b610e436020830185610c91565b610e506040830184610c91565b949350505050565b6000602082019050610e6d6000830184610e12565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ead82610be5565b9150610eb883610be5565b9250828201905080821115610ed057610ecf610e73565b5b9291505056fea2646970667358221220a7f606aeeb0bf8fe92dcfe8c19c5ecc89155b5d3625b0a3898db7a98f43960ab64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json
new file mode 100644
index 00000000..2c56b7da
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.dbg.json
@@ -0,0 +1,4 @@
+{
+ "_format": "hh-sol-dbg-1",
+ "buildInfo": "..\\build-info\\7153d89ef561a9ce69894956d250c390.json"
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json
new file mode 100644
index 00000000..ca8123a9
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/artifacts/WrappedEduTokenModule#WrappedEduToken.json
@@ -0,0 +1,337 @@
+{
+ "_format": "hh-sol-artifact-1",
+ "contractName": "WrappedEduToken",
+ "sourceName": "contracts/core/wrapped-native-token/WEdu.sol",
+ "abi": [
+ {
+ "inputs": [],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Approval",
+ "type": "event"
+ },
+ {
+ "anonymous": false,
+ "inputs": [
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "indexed": true,
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "indexed": false,
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "Transfer",
+ "type": "event"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "allowance",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "approve",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "account",
+ "type": "address"
+ }
+ ],
+ "name": "balanceOf",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "decimals",
+ "outputs": [
+ {
+ "internalType": "uint8",
+ "name": "",
+ "type": "uint8"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "amount",
+ "type": "uint256"
+ }
+ ],
+ "name": "deposit",
+ "outputs": [],
+ "stateMutability": "payable",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "name",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "symbol",
+ "outputs": [
+ {
+ "internalType": "string",
+ "name": "",
+ "type": "string"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [],
+ "name": "totalSupply",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transfer",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "from",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "to",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "value",
+ "type": "uint256"
+ }
+ ],
+ "name": "transferFrom",
+ "outputs": [
+ {
+ "internalType": "bool",
+ "name": "",
+ "type": "bool"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ],
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f57726170706564456475000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f574544550000000000000000000000000000000000000000000000000000000081525081600390816200008f919062000324565b508060049081620000a1919062000324565b5050506200040b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200012c57607f821691505b602082108103620001425762000141620000e4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620001ac7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200016d565b620001b886836200016d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000205620001ff620001f984620001d0565b620001da565b620001d0565b9050919050565b6000819050919050565b6200022183620001e4565b6200023962000230826200020c565b8484546200017a565b825550505050565b600090565b6200025062000241565b6200025d81848462000216565b505050565b5b8181101562000285576200027960008262000246565b60018101905062000263565b5050565b601f821115620002d4576200029e8162000148565b620002a9846200015d565b81016020851015620002b9578190505b620002d1620002c8856200015d565b83018262000262565b50505b505050565b600082821c905092915050565b6000620002f960001984600802620002d9565b1980831691505092915050565b6000620003148383620002e6565b9150826002028217905092915050565b6200032f82620000aa565b67ffffffffffffffff8111156200034b576200034a620000b5565b5b62000357825462000113565b6200036482828562000289565b600060209050601f8311600181146200039c576000841562000387578287015190505b62000393858262000306565b86555062000403565b601f198416620003ac8662000148565b60005b82811015620003d657848901518255600182019150602085019450602081019050620003af565b86831015620003f65784890151620003f2601f891682620002e6565b8355505b6001600288020188555050505b505050505050565b610fa0806200041b6000396000f3fe6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033",
+ "deployedBytecode": "0x6080604052600436106100915760003560e01c806370a082311161005957806370a082311461019157806395d89b41146101ce578063a9059cbb146101f9578063b6b55f2514610236578063dd62ed3e1461025257610091565b806306fdde0314610096578063095ea7b3146100c157806318160ddd146100fe57806323b872dd14610129578063313ce56714610166575b600080fd5b3480156100a257600080fd5b506100ab61028f565b6040516100b89190610bc7565b60405180910390f35b3480156100cd57600080fd5b506100e860048036038101906100e39190610c82565b610321565b6040516100f59190610cdd565b60405180910390f35b34801561010a57600080fd5b50610113610344565b6040516101209190610d07565b60405180910390f35b34801561013557600080fd5b50610150600480360381019061014b9190610d22565b61034e565b60405161015d9190610cdd565b60405180910390f35b34801561017257600080fd5b5061017b61037d565b6040516101889190610d91565b60405180910390f35b34801561019d57600080fd5b506101b860048036038101906101b39190610dac565b610386565b6040516101c59190610d07565b60405180910390f35b3480156101da57600080fd5b506101e36103ce565b6040516101f09190610bc7565b60405180910390f35b34801561020557600080fd5b50610220600480360381019061021b9190610c82565b610460565b60405161022d9190610cdd565b60405180910390f35b610250600480360381019061024b9190610dd9565b610483565b005b34801561025e57600080fd5b5061027960048036038101906102749190610e06565b610490565b6040516102869190610d07565b60405180910390f35b60606003805461029e90610e75565b80601f01602080910402602001604051908101604052809291908181526020018280546102ca90610e75565b80156103175780601f106102ec57610100808354040283529160200191610317565b820191906000526020600020905b8154815290600101906020018083116102fa57829003601f168201915b5050505050905090565b60008061032c610517565b905061033981858561051f565b600191505092915050565b6000600254905090565b600080610359610517565b9050610366858285610531565b6103718585856105c5565b60019150509392505050565b60006012905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546103dd90610e75565b80601f016020809104026020016040519081016040528092919081815260200182805461040990610e75565b80156104565780601f1061042b57610100808354040283529160200191610456565b820191906000526020600020905b81548152906001019060200180831161043957829003601f168201915b5050505050905090565b60008061046b610517565b90506104788185856105c5565b600191505092915050565b61048d33826106b9565b50565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b61052c838383600161073b565b505050565b600061053d8484610490565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146105bf57818110156105af578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016105a693929190610eb5565b60405180910390fd5b6105be8484848403600061073b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106375760006040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161062e9190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106a95760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016106a09190610eec565b60405180910390fd5b6106b4838383610912565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361072b5760006040517fec442f050000000000000000000000000000000000000000000000000000000081526004016107229190610eec565b60405180910390fd5b61073760008383610912565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036107ad5760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016107a49190610eec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361081f5760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016108169190610eec565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550801561090c578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109039190610d07565b60405180910390a35b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109645780600260008282546109589190610f36565b92505081905550610a37565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156109f0578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016109e793929190610eb5565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a805780600260008282540392505081905550610acd565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610b2a9190610d07565b60405180910390a3505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610b71578082015181840152602081019050610b56565b60008484015250505050565b6000601f19601f8301169050919050565b6000610b9982610b37565b610ba38185610b42565b9350610bb3818560208601610b53565b610bbc81610b7d565b840191505092915050565b60006020820190508181036000830152610be18184610b8e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610c1982610bee565b9050919050565b610c2981610c0e565b8114610c3457600080fd5b50565b600081359050610c4681610c20565b92915050565b6000819050919050565b610c5f81610c4c565b8114610c6a57600080fd5b50565b600081359050610c7c81610c56565b92915050565b60008060408385031215610c9957610c98610be9565b5b6000610ca785828601610c37565b9250506020610cb885828601610c6d565b9150509250929050565b60008115159050919050565b610cd781610cc2565b82525050565b6000602082019050610cf26000830184610cce565b92915050565b610d0181610c4c565b82525050565b6000602082019050610d1c6000830184610cf8565b92915050565b600080600060608486031215610d3b57610d3a610be9565b5b6000610d4986828701610c37565b9350506020610d5a86828701610c37565b9250506040610d6b86828701610c6d565b9150509250925092565b600060ff82169050919050565b610d8b81610d75565b82525050565b6000602082019050610da66000830184610d82565b92915050565b600060208284031215610dc257610dc1610be9565b5b6000610dd084828501610c37565b91505092915050565b600060208284031215610def57610dee610be9565b5b6000610dfd84828501610c6d565b91505092915050565b60008060408385031215610e1d57610e1c610be9565b5b6000610e2b85828601610c37565b9250506020610e3c85828601610c37565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610e8d57607f821691505b602082108103610ea057610e9f610e46565b5b50919050565b610eaf81610c0e565b82525050565b6000606082019050610eca6000830186610ea6565b610ed76020830185610cf8565b610ee46040830184610cf8565b949350505050565b6000602082019050610f016000830184610ea6565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610f4182610c4c565b9150610f4c83610c4c565b9250828201905080821115610f6457610f63610f07565b5b9291505056fea264697066735822122024f441b1a8631cbc27eed32cdd658c305a617501a59cc30c25ce3c839d293c1c64736f6c63430008140033",
+ "linkReferences": {},
+ "deployedLinkReferences": {}
+}
\ No newline at end of file
diff --git a/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json b/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json
new file mode 100644
index 00000000..eb75bf94
--- /dev/null
+++ b/Core uniswap/ignition/deployments/chain-11155111/build-info/455be90ea7dff1b385f62d8e4fced657.json
@@ -0,0 +1,27078 @@
+{
+ "id": "455be90ea7dff1b385f62d8e4fced657",
+ "_format": "hh-sol-build-info-1",
+ "solcVersion": "0.8.20",
+ "solcLongVersion": "0.8.20+commit.a1b79de6",
+ "input": {
+ "language": "Solidity",
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC-20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC-721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC-1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC-20\n * applications.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Skips emitting an {Approval} event indicating an allowance update. This is not\n * required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n *\n * ```solidity\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC-20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-20 standard as defined in the ERC.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n"
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract AppleToken is ERC20 {\r\n constructor() ERC20(\"Apple\", \"APT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\n\r\ncontract CherryToken is ERC20 {\r\n constructor() ERC20(\"Cherry\", \"CHT\") {}\r\n\r\n function mint(address _to, uint256 amount) public {\r\n _mint(_to, amount);\r\n }\r\n\r\n // TODO: transfer to burn\r\n}"
+ }
+ },
+ "settings": {
+ "evmVersion": "paris",
+ "optimizer": {
+ "enabled": false,
+ "runs": 200
+ },
+ "outputSelection": {
+ "*": {
+ "*": [
+ "abi",
+ "evm.bytecode",
+ "evm.deployedBytecode",
+ "evm.methodIdentifiers",
+ "metadata"
+ ],
+ "": [
+ "ast"
+ ]
+ }
+ }
+ }
+ },
+ "output": {
+ "sources": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "exportedSymbols": {
+ "IERC1155Errors": [
+ 136
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC721Errors": [
+ 89
+ ]
+ },
+ "id": 137,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 1,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "112:24:0"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 2,
+ "nodeType": "StructuredDocumentation",
+ "src": "138:141:0",
+ "text": " @dev Standard ERC-20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 41,
+ "linearizedBaseContracts": [
+ 41
+ ],
+ "name": "IERC20Errors",
+ "nameLocation": "290:12:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 3,
+ "nodeType": "StructuredDocumentation",
+ "src": "309:309:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "e450d38c",
+ "id": 11,
+ "name": "ERC20InsufficientBalance",
+ "nameLocation": "629:24:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 10,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 5,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "662:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "654:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 4,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "654:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 7,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "678:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "670:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 6,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "670:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 9,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "695:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 11,
+ "src": "687:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 8,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "687:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "653:49:0"
+ },
+ "src": "623:80:0"
+ },
+ {
+ "documentation": {
+ "id": 12,
+ "nodeType": "StructuredDocumentation",
+ "src": "709:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "96c6fd1e",
+ "id": 16,
+ "name": "ERC20InvalidSender",
+ "nameLocation": "872:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 15,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 14,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "899:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 16,
+ "src": "891:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 13,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "891:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "890:16:0"
+ },
+ "src": "866:41:0"
+ },
+ {
+ "documentation": {
+ "id": 17,
+ "nodeType": "StructuredDocumentation",
+ "src": "913:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "ec442f05",
+ "id": 21,
+ "name": "ERC20InvalidReceiver",
+ "nameLocation": "1083:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 20,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 19,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "1112:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 21,
+ "src": "1104:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 18,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1104:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1103:18:0"
+ },
+ "src": "1077:45:0"
+ },
+ {
+ "documentation": {
+ "id": 22,
+ "nodeType": "StructuredDocumentation",
+ "src": "1128:345:0",
+ "text": " @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."
+ },
+ "errorSelector": "fb8f41b2",
+ "id": 30,
+ "name": "ERC20InsufficientAllowance",
+ "nameLocation": "1484:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 29,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 24,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1519:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1511:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 23,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1511:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 26,
+ "mutability": "mutable",
+ "name": "allowance",
+ "nameLocation": "1536:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1528:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 25,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1528:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 28,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "1555:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 30,
+ "src": "1547:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 27,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1547:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1510:52:0"
+ },
+ "src": "1478:85:0"
+ },
+ {
+ "documentation": {
+ "id": 31,
+ "nodeType": "StructuredDocumentation",
+ "src": "1569:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "e602df05",
+ "id": 35,
+ "name": "ERC20InvalidApprover",
+ "nameLocation": "1754:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 34,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 33,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "1783:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 35,
+ "src": "1775:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 32,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1775:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1774:18:0"
+ },
+ "src": "1748:45:0"
+ },
+ {
+ "documentation": {
+ "id": 36,
+ "nodeType": "StructuredDocumentation",
+ "src": "1799:195:0",
+ "text": " @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "94280d62",
+ "id": 40,
+ "name": "ERC20InvalidSpender",
+ "nameLocation": "2005:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 39,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 38,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2033:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 40,
+ "src": "2025:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 37,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2025:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2024:17:0"
+ },
+ "src": "1999:43:0"
+ }
+ ],
+ "scope": 137,
+ "src": "280:1764:0",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC721Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 42,
+ "nodeType": "StructuredDocumentation",
+ "src": "2046:143:0",
+ "text": " @dev Standard ERC-721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-721 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 89,
+ "linearizedBaseContracts": [
+ 89
+ ],
+ "name": "IERC721Errors",
+ "nameLocation": "2200:13:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 43,
+ "nodeType": "StructuredDocumentation",
+ "src": "2220:219:0",
+ "text": " @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in ERC-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "89c62b64",
+ "id": 47,
+ "name": "ERC721InvalidOwner",
+ "nameLocation": "2450:18:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 46,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 45,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "2477:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 47,
+ "src": "2469:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 44,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2469:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2468:15:0"
+ },
+ "src": "2444:40:0"
+ },
+ {
+ "documentation": {
+ "id": 48,
+ "nodeType": "StructuredDocumentation",
+ "src": "2490:132:0",
+ "text": " @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "7e273289",
+ "id": 52,
+ "name": "ERC721NonexistentToken",
+ "nameLocation": "2633:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 51,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 50,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "2664:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 52,
+ "src": "2656:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 49,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2656:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2655:17:0"
+ },
+ "src": "2627:46:0"
+ },
+ {
+ "documentation": {
+ "id": 53,
+ "nodeType": "StructuredDocumentation",
+ "src": "2679:289:0",
+ "text": " @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "64283d7b",
+ "id": 61,
+ "name": "ERC721IncorrectOwner",
+ "nameLocation": "2979:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 60,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 55,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3008:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3000:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 54,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3000:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 57,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3024:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3016:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 56,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3016:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 59,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3041:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 61,
+ "src": "3033:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 58,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3033:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2999:48:0"
+ },
+ "src": "2973:75:0"
+ },
+ {
+ "documentation": {
+ "id": 62,
+ "nodeType": "StructuredDocumentation",
+ "src": "3054:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "73c6ac6e",
+ "id": 66,
+ "name": "ERC721InvalidSender",
+ "nameLocation": "3217:19:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 65,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 64,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "3245:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 66,
+ "src": "3237:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 63,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3237:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3236:16:0"
+ },
+ "src": "3211:42:0"
+ },
+ {
+ "documentation": {
+ "id": 67,
+ "nodeType": "StructuredDocumentation",
+ "src": "3259:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "64a0ae92",
+ "id": 71,
+ "name": "ERC721InvalidReceiver",
+ "nameLocation": "3429:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 70,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 69,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "3459:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 71,
+ "src": "3451:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 68,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3451:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3450:18:0"
+ },
+ "src": "3423:46:0"
+ },
+ {
+ "documentation": {
+ "id": 72,
+ "nodeType": "StructuredDocumentation",
+ "src": "3475:247:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "177e802f",
+ "id": 78,
+ "name": "ERC721InsufficientApproval",
+ "nameLocation": "3733:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 77,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 74,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "3768:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3760:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 73,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3760:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 76,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "3786:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 78,
+ "src": "3778:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 75,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3778:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3759:35:0"
+ },
+ "src": "3727:68:0"
+ },
+ {
+ "documentation": {
+ "id": 79,
+ "nodeType": "StructuredDocumentation",
+ "src": "3801:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "a9fbf51f",
+ "id": 83,
+ "name": "ERC721InvalidApprover",
+ "nameLocation": "3986:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 82,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 81,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "4016:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 83,
+ "src": "4008:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 80,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4008:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4007:18:0"
+ },
+ "src": "3980:46:0"
+ },
+ {
+ "documentation": {
+ "id": 84,
+ "nodeType": "StructuredDocumentation",
+ "src": "4032:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "5b08ba18",
+ "id": 88,
+ "name": "ERC721InvalidOperator",
+ "nameLocation": "4240:21:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 87,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 86,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "4270:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 88,
+ "src": "4262:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 85,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4262:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4261:18:0"
+ },
+ "src": "4234:46:0"
+ }
+ ],
+ "scope": 137,
+ "src": "2190:2092:0",
+ "usedErrors": [
+ 47,
+ 52,
+ 61,
+ 66,
+ 71,
+ 78,
+ 83,
+ 88
+ ],
+ "usedEvents": []
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC1155Errors",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 90,
+ "nodeType": "StructuredDocumentation",
+ "src": "4284:145:0",
+ "text": " @dev Standard ERC-1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens."
+ },
+ "fullyImplemented": true,
+ "id": 136,
+ "linearizedBaseContracts": [
+ 136
+ ],
+ "name": "IERC1155Errors",
+ "nameLocation": "4440:14:0",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 91,
+ "nodeType": "StructuredDocumentation",
+ "src": "4461:361:0",
+ "text": " @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."
+ },
+ "errorSelector": "03dee4c5",
+ "id": 101,
+ "name": "ERC1155InsufficientBalance",
+ "nameLocation": "4833:26:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 100,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 93,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "4868:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4860:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 92,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4860:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 95,
+ "mutability": "mutable",
+ "name": "balance",
+ "nameLocation": "4884:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4876:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 94,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4876:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 97,
+ "mutability": "mutable",
+ "name": "needed",
+ "nameLocation": "4901:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4893:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 96,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4893:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 99,
+ "mutability": "mutable",
+ "name": "tokenId",
+ "nameLocation": "4917:7:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 101,
+ "src": "4909:15:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 98,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4909:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4859:66:0"
+ },
+ "src": "4827:99:0"
+ },
+ {
+ "documentation": {
+ "id": 102,
+ "nodeType": "StructuredDocumentation",
+ "src": "4932:152:0",
+ "text": " @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."
+ },
+ "errorSelector": "01a83514",
+ "id": 106,
+ "name": "ERC1155InvalidSender",
+ "nameLocation": "5095:20:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 105,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 104,
+ "mutability": "mutable",
+ "name": "sender",
+ "nameLocation": "5124:6:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 106,
+ "src": "5116:14:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 103,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5116:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5115:16:0"
+ },
+ "src": "5089:43:0"
+ },
+ {
+ "documentation": {
+ "id": 107,
+ "nodeType": "StructuredDocumentation",
+ "src": "5138:159:0",
+ "text": " @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."
+ },
+ "errorSelector": "57f447ce",
+ "id": 111,
+ "name": "ERC1155InvalidReceiver",
+ "nameLocation": "5308:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 110,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 109,
+ "mutability": "mutable",
+ "name": "receiver",
+ "nameLocation": "5339:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 111,
+ "src": "5331:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 108,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5331:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5330:18:0"
+ },
+ "src": "5302:47:0"
+ },
+ {
+ "documentation": {
+ "id": 112,
+ "nodeType": "StructuredDocumentation",
+ "src": "5355:256:0",
+ "text": " @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."
+ },
+ "errorSelector": "e237d922",
+ "id": 118,
+ "name": "ERC1155MissingApprovalForAll",
+ "nameLocation": "5622:28:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 117,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 114,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "5659:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5651:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 113,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5651:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 116,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "5677:5:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 118,
+ "src": "5669:13:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 115,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5669:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5650:33:0"
+ },
+ "src": "5616:68:0"
+ },
+ {
+ "documentation": {
+ "id": 119,
+ "nodeType": "StructuredDocumentation",
+ "src": "5690:174:0",
+ "text": " @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."
+ },
+ "errorSelector": "3e31884e",
+ "id": 123,
+ "name": "ERC1155InvalidApprover",
+ "nameLocation": "5875:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 122,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 121,
+ "mutability": "mutable",
+ "name": "approver",
+ "nameLocation": "5906:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 123,
+ "src": "5898:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 120,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5898:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5897:18:0"
+ },
+ "src": "5869:47:0"
+ },
+ {
+ "documentation": {
+ "id": 124,
+ "nodeType": "StructuredDocumentation",
+ "src": "5922:197:0",
+ "text": " @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."
+ },
+ "errorSelector": "ced3e100",
+ "id": 128,
+ "name": "ERC1155InvalidOperator",
+ "nameLocation": "6130:22:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 127,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 126,
+ "mutability": "mutable",
+ "name": "operator",
+ "nameLocation": "6161:8:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 128,
+ "src": "6153:16:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 125,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6153:7:0",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6152:18:0"
+ },
+ "src": "6124:47:0"
+ },
+ {
+ "documentation": {
+ "id": 129,
+ "nodeType": "StructuredDocumentation",
+ "src": "6177:280:0",
+ "text": " @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"
+ },
+ "errorSelector": "5b059991",
+ "id": 135,
+ "name": "ERC1155InvalidArrayLength",
+ "nameLocation": "6468:25:0",
+ "nodeType": "ErrorDefinition",
+ "parameters": {
+ "id": 134,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 131,
+ "mutability": "mutable",
+ "name": "idsLength",
+ "nameLocation": "6502:9:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6494:17:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 130,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6494:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 133,
+ "mutability": "mutable",
+ "name": "valuesLength",
+ "nameLocation": "6521:12:0",
+ "nodeType": "VariableDeclaration",
+ "scope": 135,
+ "src": "6513:20:0",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 132,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6513:7:0",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6493:41:0"
+ },
+ "src": "6462:73:0"
+ }
+ ],
+ "scope": 137,
+ "src": "4430:2107:0",
+ "usedErrors": [
+ 101,
+ 106,
+ 111,
+ 118,
+ 123,
+ 128,
+ 135
+ ],
+ "usedEvents": []
+ }
+ ],
+ "src": "112:6426:0"
+ },
+ "id": 0
+ },
+ "@openzeppelin/contracts/token/ERC20/ERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 652,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 138,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "105:24:1"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "./IERC20.sol",
+ "id": 140,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 730,
+ "src": "131:36:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 139,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "139:6:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "file": "./extensions/IERC20Metadata.sol",
+ "id": 142,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 756,
+ "src": "168:63:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 141,
+ "name": "IERC20Metadata",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 755,
+ "src": "176:14:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "file": "../../utils/Context.sol",
+ "id": 144,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 786,
+ "src": "232:48:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 143,
+ "name": "Context",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 785,
+ "src": "240:7:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol",
+ "file": "../../interfaces/draft-IERC6093.sol",
+ "id": 146,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 652,
+ "sourceUnit": 137,
+ "src": "281:65:1",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 145,
+ "name": "IERC20Errors",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 41,
+ "src": "289:12:1",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": true,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 148,
+ "name": "Context",
+ "nameLocations": [
+ "1133:7:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 785,
+ "src": "1133:7:1"
+ },
+ "id": 149,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1133:7:1"
+ },
+ {
+ "baseName": {
+ "id": 150,
+ "name": "IERC20",
+ "nameLocations": [
+ "1142:6:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "1142:6:1"
+ },
+ "id": 151,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1142:6:1"
+ },
+ {
+ "baseName": {
+ "id": 152,
+ "name": "IERC20Metadata",
+ "nameLocations": [
+ "1150:14:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 755,
+ "src": "1150:14:1"
+ },
+ "id": 153,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1150:14:1"
+ },
+ {
+ "baseName": {
+ "id": 154,
+ "name": "IERC20Errors",
+ "nameLocations": [
+ "1166:12:1"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 41,
+ "src": "1166:12:1"
+ },
+ "id": 155,
+ "nodeType": "InheritanceSpecifier",
+ "src": "1166:12:1"
+ }
+ ],
+ "canonicalName": "ERC20",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 147,
+ "nodeType": "StructuredDocumentation",
+ "src": "348:757:1",
+ "text": " @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC-20\n applications."
+ },
+ "fullyImplemented": true,
+ "id": 651,
+ "linearizedBaseContracts": [
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "ERC20",
+ "nameLocation": "1124:5:1",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "constant": false,
+ "id": 159,
+ "mutability": "mutable",
+ "name": "_balances",
+ "nameLocation": "1229:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1185:53:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "typeName": {
+ "id": 158,
+ "keyName": "account",
+ "keyNameLocation": "1201:7:1",
+ "keyType": {
+ "id": 156,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1193:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1185:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 157,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1212:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 165,
+ "mutability": "mutable",
+ "name": "_allowances",
+ "nameLocation": "1317:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1245:83:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "typeName": {
+ "id": 164,
+ "keyName": "account",
+ "keyNameLocation": "1261:7:1",
+ "keyType": {
+ "id": 160,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1253:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1245:63:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 163,
+ "keyName": "spender",
+ "keyNameLocation": "1288:7:1",
+ "keyType": {
+ "id": 161,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1280:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "Mapping",
+ "src": "1272:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ },
+ "valueName": "",
+ "valueNameLocation": "-1:-1:-1",
+ "valueType": {
+ "id": 162,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1299:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 167,
+ "mutability": "mutable",
+ "name": "_totalSupply",
+ "nameLocation": "1351:12:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1335:28:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 166,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1335:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 169,
+ "mutability": "mutable",
+ "name": "_name",
+ "nameLocation": "1385:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1370:20:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 168,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1370:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "constant": false,
+ "id": 171,
+ "mutability": "mutable",
+ "name": "_symbol",
+ "nameLocation": "1411:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 651,
+ "src": "1396:22:1",
+ "stateVariable": true,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 170,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1396:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "private"
+ },
+ {
+ "body": {
+ "id": 187,
+ "nodeType": "Block",
+ "src": "1657:57:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 181,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 179,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1667:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 180,
+ "name": "name_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 174,
+ "src": "1675:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1667:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 182,
+ "nodeType": "ExpressionStatement",
+ "src": "1667:13:1"
+ },
+ {
+ "expression": {
+ "id": 185,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 183,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "1690:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 184,
+ "name": "symbol_",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 176,
+ "src": "1700:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string memory"
+ }
+ },
+ "src": "1690:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "id": 186,
+ "nodeType": "ExpressionStatement",
+ "src": "1690:17:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 172,
+ "nodeType": "StructuredDocumentation",
+ "src": "1425:171:1",
+ "text": " @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."
+ },
+ "id": 188,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 177,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 174,
+ "mutability": "mutable",
+ "name": "name_",
+ "nameLocation": "1627:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1613:19:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 173,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1613:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 176,
+ "mutability": "mutable",
+ "name": "symbol_",
+ "nameLocation": "1648:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 188,
+ "src": "1634:21:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 175,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1634:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1612:44:1"
+ },
+ "returnParameters": {
+ "id": 178,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1657:0:1"
+ },
+ "scope": 651,
+ "src": "1601:113:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "baseFunctions": [
+ 742
+ ],
+ "body": {
+ "id": 196,
+ "nodeType": "Block",
+ "src": "1839:29:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 194,
+ "name": "_name",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 169,
+ "src": "1856:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 193,
+ "id": 195,
+ "nodeType": "Return",
+ "src": "1849:12:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 189,
+ "nodeType": "StructuredDocumentation",
+ "src": "1720:54:1",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 197,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "1788:4:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 190,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1792:2:1"
+ },
+ "returnParameters": {
+ "id": 193,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 192,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 197,
+ "src": "1824:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 191,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "1824:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1823:15:1"
+ },
+ "scope": 651,
+ "src": "1779:89:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 748
+ ],
+ "body": {
+ "id": 205,
+ "nodeType": "Block",
+ "src": "2043:31:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 203,
+ "name": "_symbol",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 171,
+ "src": "2060:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage",
+ "typeString": "string storage ref"
+ }
+ },
+ "functionReturnParameters": 202,
+ "id": 204,
+ "nodeType": "Return",
+ "src": "2053:14:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 198,
+ "nodeType": "StructuredDocumentation",
+ "src": "1874:102:1",
+ "text": " @dev Returns the symbol of the token, usually a shorter version of the\n name."
+ },
+ "functionSelector": "95d89b41",
+ "id": 206,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "1990:6:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 199,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "1996:2:1"
+ },
+ "returnParameters": {
+ "id": 202,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 201,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 206,
+ "src": "2028:13:1",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 200,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "2028:6:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2027:15:1"
+ },
+ "scope": 651,
+ "src": "1981:93:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 754
+ ],
+ "body": {
+ "id": 214,
+ "nodeType": "Block",
+ "src": "2763:26:1",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "3138",
+ "id": 212,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "2780:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_18_by_1",
+ "typeString": "int_const 18"
+ },
+ "value": "18"
+ },
+ "functionReturnParameters": 211,
+ "id": 213,
+ "nodeType": "Return",
+ "src": "2773:9:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 207,
+ "nodeType": "StructuredDocumentation",
+ "src": "2080:622:1",
+ "text": " @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."
+ },
+ "functionSelector": "313ce567",
+ "id": 215,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "2716:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 208,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2724:2:1"
+ },
+ "returnParameters": {
+ "id": 211,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 210,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 215,
+ "src": "2756:5:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 209,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "2756:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2755:7:1"
+ },
+ "scope": 651,
+ "src": "2707:82:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 678
+ ],
+ "body": {
+ "id": 223,
+ "nodeType": "Block",
+ "src": "2910:36:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 221,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "2927:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 220,
+ "id": 222,
+ "nodeType": "Return",
+ "src": "2920:19:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 216,
+ "nodeType": "StructuredDocumentation",
+ "src": "2795:49:1",
+ "text": " @dev See {IERC20-totalSupply}."
+ },
+ "functionSelector": "18160ddd",
+ "id": 224,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "2858:11:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 217,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "2869:2:1"
+ },
+ "returnParameters": {
+ "id": 220,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 219,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 224,
+ "src": "2901:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 218,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2901:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2900:9:1"
+ },
+ "scope": 651,
+ "src": "2849:97:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 686
+ ],
+ "body": {
+ "id": 236,
+ "nodeType": "Block",
+ "src": "3078:42:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "id": 232,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "3095:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 234,
+ "indexExpression": {
+ "id": 233,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 227,
+ "src": "3105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3095:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 231,
+ "id": 235,
+ "nodeType": "Return",
+ "src": "3088:25:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 225,
+ "nodeType": "StructuredDocumentation",
+ "src": "2952:47:1",
+ "text": " @dev See {IERC20-balanceOf}."
+ },
+ "functionSelector": "70a08231",
+ "id": 237,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "3013:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 228,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 227,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "3031:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3023:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 226,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3023:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3022:17:1"
+ },
+ "returnParameters": {
+ "id": 231,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 230,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 237,
+ "src": "3069:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 229,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3069:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3068:9:1"
+ },
+ "scope": 651,
+ "src": "3004:116:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 696
+ ],
+ "body": {
+ "id": 260,
+ "nodeType": "Block",
+ "src": "3390:103:1",
+ "statements": [
+ {
+ "assignments": [
+ 248
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 248,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3408:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 260,
+ "src": "3400:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 247,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3400:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 251,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 249,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "3416:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 250,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3416:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "3400:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 253,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 248,
+ "src": "3448:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 254,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 240,
+ "src": "3455:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 255,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 242,
+ "src": "3459:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 252,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "3438:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 256,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "3438:27:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 257,
+ "nodeType": "ExpressionStatement",
+ "src": "3438:27:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 258,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "3482:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 246,
+ "id": 259,
+ "nodeType": "Return",
+ "src": "3475:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 238,
+ "nodeType": "StructuredDocumentation",
+ "src": "3126:184:1",
+ "text": " @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 261,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "3324:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 243,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 240,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "3341:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3333:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 239,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3333:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 242,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "3353:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3345:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 241,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3345:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3332:27:1"
+ },
+ "returnParameters": {
+ "id": 246,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 245,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 261,
+ "src": "3384:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 244,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "3384:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3383:6:1"
+ },
+ "scope": 651,
+ "src": "3315:178:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 706
+ ],
+ "body": {
+ "id": 277,
+ "nodeType": "Block",
+ "src": "3640:51:1",
+ "statements": [
+ {
+ "expression": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 271,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "3657:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 273,
+ "indexExpression": {
+ "id": 272,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 264,
+ "src": "3669:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 275,
+ "indexExpression": {
+ "id": 274,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 266,
+ "src": "3676:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "3657:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "functionReturnParameters": 270,
+ "id": 276,
+ "nodeType": "Return",
+ "src": "3650:34:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 262,
+ "nodeType": "StructuredDocumentation",
+ "src": "3499:47:1",
+ "text": " @dev See {IERC20-allowance}."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 278,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "3560:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 267,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 264,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "3578:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3570:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 263,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3570:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 266,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "3593:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3585:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 265,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "3585:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3569:32:1"
+ },
+ "returnParameters": {
+ "id": 270,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 269,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 278,
+ "src": "3631:7:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 268,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "3631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "3630:9:1"
+ },
+ "scope": 651,
+ "src": "3551:140:1",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 716
+ ],
+ "body": {
+ "id": 301,
+ "nodeType": "Block",
+ "src": "4077:107:1",
+ "statements": [
+ {
+ "assignments": [
+ 289
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 289,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "4095:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 301,
+ "src": "4087:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 288,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4087:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 292,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 290,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4103:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 291,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4103:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4087:28:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 294,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 289,
+ "src": "4134:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 295,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 281,
+ "src": "4141:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 296,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 283,
+ "src": "4150:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 293,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 542,
+ "src": "4125:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 297,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4125:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 298,
+ "nodeType": "ExpressionStatement",
+ "src": "4125:31:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 299,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "4173:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 287,
+ "id": 300,
+ "nodeType": "Return",
+ "src": "4166:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 279,
+ "nodeType": "StructuredDocumentation",
+ "src": "3697:296:1",
+ "text": " @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 302,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "4007:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 284,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 281,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4023:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4015:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 280,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4015:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 283,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4040:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4032:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 282,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4032:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4014:32:1"
+ },
+ "returnParameters": {
+ "id": 287,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 286,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 302,
+ "src": "4071:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 285,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4071:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4070:6:1"
+ },
+ "scope": 651,
+ "src": "3998:186:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "baseFunctions": [
+ 728
+ ],
+ "body": {
+ "id": 333,
+ "nodeType": "Block",
+ "src": "4869:151:1",
+ "statements": [
+ {
+ "assignments": [
+ 315
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 315,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "4887:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 333,
+ "src": "4879:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 314,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4879:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 318,
+ "initialValue": {
+ "arguments": [],
+ "expression": {
+ "argumentTypes": [],
+ "id": 316,
+ "name": "_msgSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 767,
+ "src": "4897:10:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
+ "typeString": "function () view returns (address)"
+ }
+ },
+ "id": 317,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4897:12:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "4879:30:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 320,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4935:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 321,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 315,
+ "src": "4941:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 322,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4950:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 319,
+ "name": "_spendAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 650,
+ "src": "4919:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 323,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4919:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 324,
+ "nodeType": "ExpressionStatement",
+ "src": "4919:37:1"
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 326,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 305,
+ "src": "4976:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 327,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 307,
+ "src": "4982:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 328,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 309,
+ "src": "4986:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 325,
+ "name": "_transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 381,
+ "src": "4966:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 329,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "4966:26:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 330,
+ "nodeType": "ExpressionStatement",
+ "src": "4966:26:1"
+ },
+ {
+ "expression": {
+ "hexValue": "74727565",
+ "id": 331,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5009:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ },
+ "functionReturnParameters": 313,
+ "id": 332,
+ "nodeType": "Return",
+ "src": "5002:11:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 303,
+ "nodeType": "StructuredDocumentation",
+ "src": "4190:581:1",
+ "text": " @dev See {IERC20-transferFrom}.\n Skips emitting an {Approval} event indicating an allowance update. This is not\n required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve].\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."
+ },
+ "functionSelector": "23b872dd",
+ "id": 334,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "4785:12:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 310,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 305,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "4806:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4798:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 304,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4798:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 307,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "4820:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4812:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 306,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "4812:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 309,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "4832:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4824:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 308,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "4824:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4797:41:1"
+ },
+ "returnParameters": {
+ "id": 313,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 312,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 334,
+ "src": "4863:4:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 311,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "4863:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "4862:6:1"
+ },
+ "scope": 651,
+ "src": "4776:244:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 380,
+ "nodeType": "Block",
+ "src": "5462:231:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 349,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 344,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5476:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 347,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5492:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 346,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5484:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 345,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5484:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 348,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5484:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5476:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 358,
+ "nodeType": "IfStatement",
+ "src": "5472:86:1",
+ "trueBody": {
+ "id": 357,
+ "nodeType": "Block",
+ "src": "5496:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 353,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5544:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 352,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5536:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 351,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5536:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 354,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5536:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 350,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "5517:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 355,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5517:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 356,
+ "nodeType": "RevertStatement",
+ "src": "5510:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 364,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 359,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5571:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 362,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5585:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 361,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5577:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 360,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5577:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 363,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5577:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "5571:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 373,
+ "nodeType": "IfStatement",
+ "src": "5567:86:1",
+ "trueBody": {
+ "id": 372,
+ "nodeType": "Block",
+ "src": "5589:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 368,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "5639:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 367,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "5631:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 366,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5631:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 369,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5631:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 365,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "5610:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 370,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5610:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 371,
+ "nodeType": "RevertStatement",
+ "src": "5603:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 375,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 337,
+ "src": "5670:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 376,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 339,
+ "src": "5676:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 377,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 341,
+ "src": "5680:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 374,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "5662:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 378,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "5662:24:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 379,
+ "nodeType": "ExpressionStatement",
+ "src": "5662:24:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 335,
+ "nodeType": "StructuredDocumentation",
+ "src": "5026:362:1",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 381,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_transfer",
+ "nameLocation": "5402:9:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 342,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 337,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "5420:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5412:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 336,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5412:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 339,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "5434:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5426:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 338,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "5426:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 341,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "5446:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 381,
+ "src": "5438:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 340,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "5438:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "5411:41:1"
+ },
+ "returnParameters": {
+ "id": 343,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "5462:0:1"
+ },
+ "scope": 651,
+ "src": "5393:300:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 457,
+ "nodeType": "Block",
+ "src": "6083:1032:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 396,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 391,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6097:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 394,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6113:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 393,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6105:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 392,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6105:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 395,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6105:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6097:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 428,
+ "nodeType": "Block",
+ "src": "6271:362:1",
+ "statements": [
+ {
+ "assignments": [
+ 403
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 403,
+ "mutability": "mutable",
+ "name": "fromBalance",
+ "nameLocation": "6293:11:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 428,
+ "src": "6285:19:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 402,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6285:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 407,
+ "initialValue": {
+ "baseExpression": {
+ "id": 404,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6307:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 406,
+ "indexExpression": {
+ "id": 405,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6317:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "6307:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "6285:37:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 410,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 408,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6340:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 409,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6354:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6340:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 418,
+ "nodeType": "IfStatement",
+ "src": "6336:115:1",
+ "trueBody": {
+ "id": 417,
+ "nodeType": "Block",
+ "src": "6361:90:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 412,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6411:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 413,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6417:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 414,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6430:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 411,
+ "name": "ERC20InsufficientBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 11,
+ "src": "6386:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 415,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6386:50:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 416,
+ "nodeType": "RevertStatement",
+ "src": "6379:57:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 427,
+ "nodeType": "UncheckedBlock",
+ "src": "6464:159:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 425,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 419,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "6571:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 421,
+ "indexExpression": {
+ "id": 420,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "6581:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "6571:15:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 424,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 422,
+ "name": "fromBalance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 403,
+ "src": "6589:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 423,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6603:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6589:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6571:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 426,
+ "nodeType": "ExpressionStatement",
+ "src": "6571:37:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 429,
+ "nodeType": "IfStatement",
+ "src": "6093:540:1",
+ "trueBody": {
+ "id": 401,
+ "nodeType": "Block",
+ "src": "6117:148:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 399,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 397,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6233:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 398,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6249:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6233:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 400,
+ "nodeType": "ExpressionStatement",
+ "src": "6233:21:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 435,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 430,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "6647:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 433,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "6661:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 432,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "6653:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 431,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6653:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 434,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "6653:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "6647:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "falseBody": {
+ "id": 449,
+ "nodeType": "Block",
+ "src": "6862:206:1",
+ "statements": [
+ {
+ "id": 448,
+ "nodeType": "UncheckedBlock",
+ "src": "6876:182:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 446,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "id": 442,
+ "name": "_balances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 159,
+ "src": "7021:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 444,
+ "indexExpression": {
+ "id": 443,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7031:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "7021:13:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "+=",
+ "rightHandSide": {
+ "id": 445,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7038:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "7021:22:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 447,
+ "nodeType": "ExpressionStatement",
+ "src": "7021:22:1"
+ }
+ ]
+ }
+ ]
+ },
+ "id": 450,
+ "nodeType": "IfStatement",
+ "src": "6643:425:1",
+ "trueBody": {
+ "id": 441,
+ "nodeType": "Block",
+ "src": "6665:191:1",
+ "statements": [
+ {
+ "id": 440,
+ "nodeType": "UncheckedBlock",
+ "src": "6679:167:1",
+ "statements": [
+ {
+ "expression": {
+ "id": 438,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "id": 436,
+ "name": "_totalSupply",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 167,
+ "src": "6810:12:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "-=",
+ "rightHandSide": {
+ "id": 437,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "6826:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "6810:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 439,
+ "nodeType": "ExpressionStatement",
+ "src": "6810:21:1"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 452,
+ "name": "from",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 384,
+ "src": "7092:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 453,
+ "name": "to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 386,
+ "src": "7098:2:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 454,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 388,
+ "src": "7102:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 451,
+ "name": "Transfer",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 663,
+ "src": "7083:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 455,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7083:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 456,
+ "nodeType": "EmitStatement",
+ "src": "7078:30:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 382,
+ "nodeType": "StructuredDocumentation",
+ "src": "5699:304:1",
+ "text": " @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."
+ },
+ "id": 458,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_update",
+ "nameLocation": "6017:7:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 389,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 384,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "6033:4:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6025:12:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 383,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6025:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 386,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "6047:2:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6039:10:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 385,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "6039:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 388,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "6059:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 458,
+ "src": "6051:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 387,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "6051:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "6024:41:1"
+ },
+ "returnParameters": {
+ "id": 390,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "6083:0:1"
+ },
+ "scope": 651,
+ "src": "6008:1107:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 490,
+ "nodeType": "Block",
+ "src": "7514:152:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 471,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 466,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7528:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 469,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7547:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 468,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7539:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 467,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7539:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 470,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7539:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "7528:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 480,
+ "nodeType": "IfStatement",
+ "src": "7524:91:1",
+ "trueBody": {
+ "id": 479,
+ "nodeType": "Block",
+ "src": "7551:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 475,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7601:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 474,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7593:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 473,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7593:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 476,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7593:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 472,
+ "name": "ERC20InvalidReceiver",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 21,
+ "src": "7572:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 477,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7572:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 478,
+ "nodeType": "RevertStatement",
+ "src": "7565:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 484,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "7640:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 483,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "7632:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 482,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7632:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 485,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7632:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 486,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 461,
+ "src": "7644:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 487,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 463,
+ "src": "7653:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 481,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "7624:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 488,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "7624:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 489,
+ "nodeType": "ExpressionStatement",
+ "src": "7624:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 459,
+ "nodeType": "StructuredDocumentation",
+ "src": "7121:332:1",
+ "text": " @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."
+ },
+ "id": 491,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_mint",
+ "nameLocation": "7467:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 464,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 461,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "7481:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7473:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 460,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7473:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 463,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "7498:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 491,
+ "src": "7490:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 462,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "7490:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7472:32:1"
+ },
+ "returnParameters": {
+ "id": 465,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "7514:0:1"
+ },
+ "scope": 651,
+ "src": "7458:208:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 523,
+ "nodeType": "Block",
+ "src": "8040:150:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 504,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 499,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8054:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 502,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8073:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 501,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8065:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 500,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8065:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 503,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8065:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "8054:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 513,
+ "nodeType": "IfStatement",
+ "src": "8050:89:1",
+ "trueBody": {
+ "id": 512,
+ "nodeType": "Block",
+ "src": "8077:62:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 508,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8125:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 507,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8117:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 506,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8117:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 509,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8117:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 505,
+ "name": "ERC20InvalidSender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 16,
+ "src": "8098:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 510,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8098:30:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 511,
+ "nodeType": "RevertStatement",
+ "src": "8091:37:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 515,
+ "name": "account",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 494,
+ "src": "8156:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 518,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8173:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 517,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "8165:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 516,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8165:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 519,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8165:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 520,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 496,
+ "src": "8177:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 514,
+ "name": "_update",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 458,
+ "src": "8148:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 521,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8148:35:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 522,
+ "nodeType": "ExpressionStatement",
+ "src": "8148:35:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 492,
+ "nodeType": "StructuredDocumentation",
+ "src": "7672:307:1",
+ "text": " @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"
+ },
+ "id": 524,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_burn",
+ "nameLocation": "7993:5:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 497,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 494,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "8007:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "7999:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 493,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "7999:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 496,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8024:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 524,
+ "src": "8016:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 495,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8016:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "7998:32:1"
+ },
+ "returnParameters": {
+ "id": 498,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8040:0:1"
+ },
+ "scope": 651,
+ "src": "7984:206:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 541,
+ "nodeType": "Block",
+ "src": "8800:54:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 535,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 527,
+ "src": "8819:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 536,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 529,
+ "src": "8826:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 537,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 531,
+ "src": "8835:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "74727565",
+ "id": 538,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "8842:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "true"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 534,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "8810:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 539,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "8810:37:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 540,
+ "nodeType": "ExpressionStatement",
+ "src": "8810:37:1"
+ }
+ ]
+ },
+ "documentation": {
+ "id": 525,
+ "nodeType": "StructuredDocumentation",
+ "src": "8196:525:1",
+ "text": " @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."
+ },
+ "id": 542,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "8735:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 532,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 527,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "8752:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8744:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 526,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8744:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 529,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "8767:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8759:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 528,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "8759:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 531,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "8784:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 542,
+ "src": "8776:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 530,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "8776:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "8743:47:1"
+ },
+ "returnParameters": {
+ "id": 533,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "8800:0:1"
+ },
+ "scope": 651,
+ "src": "8726:128:1",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 601,
+ "nodeType": "Block",
+ "src": "9799:334:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 559,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 554,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "9813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 557,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9830:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 556,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9822:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 555,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9822:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 558,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9822:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9813:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 568,
+ "nodeType": "IfStatement",
+ "src": "9809:89:1",
+ "trueBody": {
+ "id": 567,
+ "nodeType": "Block",
+ "src": "9834:64:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 563,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9884:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 562,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9876:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 561,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9876:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 564,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9876:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 560,
+ "name": "ERC20InvalidApprover",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 35,
+ "src": "9855:20:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 565,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9855:32:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 566,
+ "nodeType": "RevertStatement",
+ "src": "9848:39:1"
+ }
+ ]
+ }
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "id": 574,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 569,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "9911:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "==",
+ "rightExpression": {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 572,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9930:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 571,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9922:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 570,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9922:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 573,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9922:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "src": "9911:21:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 583,
+ "nodeType": "IfStatement",
+ "src": "9907:90:1",
+ "trueBody": {
+ "id": 582,
+ "nodeType": "Block",
+ "src": "9934:63:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "arguments": [
+ {
+ "hexValue": "30",
+ "id": 578,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "9983:1:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ }
+ ],
+ "id": 577,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "9975:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_address_$",
+ "typeString": "type(address)"
+ },
+ "typeName": {
+ "id": 576,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9975:7:1",
+ "typeDescriptions": {}
+ }
+ },
+ "id": 579,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "typeConversion",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9975:10:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 575,
+ "name": "ERC20InvalidSpender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 40,
+ "src": "9955:19:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
+ "typeString": "function (address) pure"
+ }
+ },
+ "id": 580,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "9955:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 581,
+ "nodeType": "RevertStatement",
+ "src": "9948:38:1"
+ }
+ ]
+ }
+ },
+ {
+ "expression": {
+ "id": 590,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftHandSide": {
+ "baseExpression": {
+ "baseExpression": {
+ "id": 584,
+ "name": "_allowances",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 165,
+ "src": "10006:11:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
+ "typeString": "mapping(address => mapping(address => uint256))"
+ }
+ },
+ "id": 587,
+ "indexExpression": {
+ "id": 585,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10018:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": false,
+ "nodeType": "IndexAccess",
+ "src": "10006:18:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
+ "typeString": "mapping(address => uint256)"
+ }
+ },
+ "id": 588,
+ "indexExpression": {
+ "id": 586,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10025:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "isConstant": false,
+ "isLValue": true,
+ "isPure": false,
+ "lValueRequested": true,
+ "nodeType": "IndexAccess",
+ "src": "10006:27:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "Assignment",
+ "operator": "=",
+ "rightHandSide": {
+ "id": 589,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10036:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10006:35:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "id": 591,
+ "nodeType": "ExpressionStatement",
+ "src": "10006:35:1"
+ },
+ {
+ "condition": {
+ "id": 592,
+ "name": "emitEvent",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 551,
+ "src": "10055:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 600,
+ "nodeType": "IfStatement",
+ "src": "10051:76:1",
+ "trueBody": {
+ "id": 599,
+ "nodeType": "Block",
+ "src": "10066:61:1",
+ "statements": [
+ {
+ "eventCall": {
+ "arguments": [
+ {
+ "id": 594,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 545,
+ "src": "10094:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 595,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 547,
+ "src": "10101:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 596,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 549,
+ "src": "10110:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 593,
+ "name": "Approval",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 672,
+ "src": "10085:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,address,uint256)"
+ }
+ },
+ "id": 597,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10085:31:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 598,
+ "nodeType": "EmitStatement",
+ "src": "10080:36:1"
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 543,
+ "nodeType": "StructuredDocumentation",
+ "src": "8860:836:1",
+ "text": " @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```solidity\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."
+ },
+ "id": 602,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_approve",
+ "nameLocation": "9710:8:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 552,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 545,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "9727:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9719:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 544,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9719:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 547,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "9742:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9734:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 546,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "9734:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 549,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "9759:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9751:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 548,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "9751:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 551,
+ "mutability": "mutable",
+ "name": "emitEvent",
+ "nameLocation": "9771:9:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 602,
+ "src": "9766:14:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 550,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "9766:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "9718:63:1"
+ },
+ "returnParameters": {
+ "id": 553,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "9799:0:1"
+ },
+ "scope": 651,
+ "src": "9701:432:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 649,
+ "nodeType": "Block",
+ "src": "10504:388:1",
+ "statements": [
+ {
+ "assignments": [
+ 613
+ ],
+ "declarations": [
+ {
+ "constant": false,
+ "id": 613,
+ "mutability": "mutable",
+ "name": "currentAllowance",
+ "nameLocation": "10522:16:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 649,
+ "src": "10514:24:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 612,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10514:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "id": 618,
+ "initialValue": {
+ "arguments": [
+ {
+ "id": 615,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10551:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 616,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10558:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ ],
+ "id": 614,
+ "name": "allowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 278,
+ "src": "10541:9:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$",
+ "typeString": "function (address,address) view returns (uint256)"
+ }
+ },
+ "id": 617,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10541:25:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "VariableDeclarationStatement",
+ "src": "10514:52:1"
+ },
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 625,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 619,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10580:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "!=",
+ "rightExpression": {
+ "expression": {
+ "arguments": [
+ {
+ "id": 622,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "nodeType": "ElementaryTypeNameExpression",
+ "src": "10605:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ },
+ "typeName": {
+ "id": 621,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10605:7:1",
+ "typeDescriptions": {}
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_type$_t_uint256_$",
+ "typeString": "type(uint256)"
+ }
+ ],
+ "id": 620,
+ "name": "type",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -27,
+ "src": "10600:4:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
+ "typeString": "function () pure"
+ }
+ },
+ "id": 623,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10600:13:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_meta_type_t_uint256",
+ "typeString": "type(uint256)"
+ }
+ },
+ "id": 624,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "lValueRequested": false,
+ "memberLocation": "10614:3:1",
+ "memberName": "max",
+ "nodeType": "MemberAccess",
+ "src": "10600:17:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10580:37:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 648,
+ "nodeType": "IfStatement",
+ "src": "10576:310:1",
+ "trueBody": {
+ "id": 647,
+ "nodeType": "Block",
+ "src": "10619:267:1",
+ "statements": [
+ {
+ "condition": {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 628,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 626,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10637:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "<",
+ "rightExpression": {
+ "id": 627,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10656:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10637:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "id": 636,
+ "nodeType": "IfStatement",
+ "src": "10633:130:1",
+ "trueBody": {
+ "id": 635,
+ "nodeType": "Block",
+ "src": "10663:100:1",
+ "statements": [
+ {
+ "errorCall": {
+ "arguments": [
+ {
+ "id": 630,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10715:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 631,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10724:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "id": 632,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10742:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 629,
+ "name": "ERC20InsufficientAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 30,
+ "src": "10688:26:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256,uint256) pure"
+ }
+ },
+ "id": 633,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10688:60:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 634,
+ "nodeType": "RevertStatement",
+ "src": "10681:67:1"
+ }
+ ]
+ }
+ },
+ {
+ "id": 646,
+ "nodeType": "UncheckedBlock",
+ "src": "10776:100:1",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 638,
+ "name": "owner",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 605,
+ "src": "10813:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 639,
+ "name": "spender",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 607,
+ "src": "10820:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "commonType": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "id": 642,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "leftExpression": {
+ "id": 640,
+ "name": "currentAllowance",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 613,
+ "src": "10829:16:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "nodeType": "BinaryOperation",
+ "operator": "-",
+ "rightExpression": {
+ "id": 641,
+ "name": "value",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 609,
+ "src": "10848:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "src": "10829:24:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ {
+ "hexValue": "66616c7365",
+ "id": 643,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "bool",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "10855:5:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "value": "false"
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ ],
+ "id": 637,
+ "name": "_approve",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [
+ 542,
+ 602
+ ],
+ "referencedDeclaration": 602,
+ "src": "10804:8:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
+ "typeString": "function (address,address,uint256,bool)"
+ }
+ },
+ "id": 644,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "10804:57:1",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 645,
+ "nodeType": "ExpressionStatement",
+ "src": "10804:57:1"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "documentation": {
+ "id": 603,
+ "nodeType": "StructuredDocumentation",
+ "src": "10139:271:1",
+ "text": " @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."
+ },
+ "id": 650,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_spendAllowance",
+ "nameLocation": "10424:15:1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 610,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 605,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "10448:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10440:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 604,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10440:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 607,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "10463:7:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10455:15:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 606,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "10455:7:1",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 609,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "10480:5:1",
+ "nodeType": "VariableDeclaration",
+ "scope": 650,
+ "src": "10472:13:1",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 608,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "10472:7:1",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "10439:47:1"
+ },
+ "returnParameters": {
+ "id": 611,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "10504:0:1"
+ },
+ "scope": 651,
+ "src": "10415:477:1",
+ "stateMutability": "nonpayable",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 652,
+ "src": "1106:9788:1",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "105:10790:1"
+ },
+ "id": 1
+ },
+ "@openzeppelin/contracts/token/ERC20/IERC20.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ]
+ },
+ "id": 730,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 653,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "106:24:2"
+ },
+ {
+ "abstract": false,
+ "baseContracts": [],
+ "canonicalName": "IERC20",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 654,
+ "nodeType": "StructuredDocumentation",
+ "src": "132:71:2",
+ "text": " @dev Interface of the ERC-20 standard as defined in the ERC."
+ },
+ "fullyImplemented": false,
+ "id": 729,
+ "linearizedBaseContracts": [
+ 729
+ ],
+ "name": "IERC20",
+ "nameLocation": "214:6:2",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 655,
+ "nodeType": "StructuredDocumentation",
+ "src": "227:158:2",
+ "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
+ },
+ "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
+ "id": 663,
+ "name": "Transfer",
+ "nameLocation": "396:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 662,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 657,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "421:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "405:20:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 656,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "405:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 659,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "443:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "427:18:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 658,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "427:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 661,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "455:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 663,
+ "src": "447:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 660,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "447:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "404:57:2"
+ },
+ "src": "390:72:2"
+ },
+ {
+ "anonymous": false,
+ "documentation": {
+ "id": 664,
+ "nodeType": "StructuredDocumentation",
+ "src": "468:148:2",
+ "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
+ },
+ "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
+ "id": 672,
+ "name": "Approval",
+ "nameLocation": "627:8:2",
+ "nodeType": "EventDefinition",
+ "parameters": {
+ "id": 671,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 666,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "652:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "636:21:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 665,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "636:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 668,
+ "indexed": true,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "675:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "659:23:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 667,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "659:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 670,
+ "indexed": false,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "692:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 672,
+ "src": "684:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 669,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "684:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "635:63:2"
+ },
+ "src": "621:78:2"
+ },
+ {
+ "documentation": {
+ "id": 673,
+ "nodeType": "StructuredDocumentation",
+ "src": "705:65:2",
+ "text": " @dev Returns the value of tokens in existence."
+ },
+ "functionSelector": "18160ddd",
+ "id": 678,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "totalSupply",
+ "nameLocation": "784:11:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 674,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "795:2:2"
+ },
+ "returnParameters": {
+ "id": 677,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 676,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 678,
+ "src": "821:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 675,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "821:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "820:9:2"
+ },
+ "scope": 729,
+ "src": "775:55:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 679,
+ "nodeType": "StructuredDocumentation",
+ "src": "836:71:2",
+ "text": " @dev Returns the value of tokens owned by `account`."
+ },
+ "functionSelector": "70a08231",
+ "id": 686,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "balanceOf",
+ "nameLocation": "921:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 682,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 681,
+ "mutability": "mutable",
+ "name": "account",
+ "nameLocation": "939:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "931:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 680,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "931:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "930:17:2"
+ },
+ "returnParameters": {
+ "id": 685,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 684,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 686,
+ "src": "971:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 683,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "971:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "970:9:2"
+ },
+ "scope": 729,
+ "src": "912:68:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 687,
+ "nodeType": "StructuredDocumentation",
+ "src": "986:213:2",
+ "text": " @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "a9059cbb",
+ "id": 696,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transfer",
+ "nameLocation": "1213:8:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 692,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 689,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "1230:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1222:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 688,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1222:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 691,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "1242:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1234:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 690,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1234:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1221:27:2"
+ },
+ "returnParameters": {
+ "id": 695,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 694,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 696,
+ "src": "1267:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 693,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "1267:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1266:6:2"
+ },
+ "scope": 729,
+ "src": "1204:69:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 697,
+ "nodeType": "StructuredDocumentation",
+ "src": "1279:264:2",
+ "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
+ },
+ "functionSelector": "dd62ed3e",
+ "id": 706,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "allowance",
+ "nameLocation": "1557:9:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 702,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 699,
+ "mutability": "mutable",
+ "name": "owner",
+ "nameLocation": "1575:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1567:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 698,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1567:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 701,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "1590:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1582:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 700,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "1582:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1566:32:2"
+ },
+ "returnParameters": {
+ "id": 705,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 704,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 706,
+ "src": "1622:7:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 703,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "1622:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "1621:9:2"
+ },
+ "scope": 729,
+ "src": "1548:83:2",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 707,
+ "nodeType": "StructuredDocumentation",
+ "src": "1637:667:2",
+ "text": " @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
+ },
+ "functionSelector": "095ea7b3",
+ "id": 716,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "approve",
+ "nameLocation": "2318:7:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 712,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 709,
+ "mutability": "mutable",
+ "name": "spender",
+ "nameLocation": "2334:7:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2326:15:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 708,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2326:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 711,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2351:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2343:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 710,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2343:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2325:32:2"
+ },
+ "returnParameters": {
+ "id": 715,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 714,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 716,
+ "src": "2376:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 713,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2376:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2375:6:2"
+ },
+ "scope": 729,
+ "src": "2309:73:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 717,
+ "nodeType": "StructuredDocumentation",
+ "src": "2388:297:2",
+ "text": " @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
+ },
+ "functionSelector": "23b872dd",
+ "id": 728,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "transferFrom",
+ "nameLocation": "2699:12:2",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 724,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 719,
+ "mutability": "mutable",
+ "name": "from",
+ "nameLocation": "2720:4:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2712:12:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 718,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2712:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 721,
+ "mutability": "mutable",
+ "name": "to",
+ "nameLocation": "2734:2:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2726:10:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 720,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "2726:7:2",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 723,
+ "mutability": "mutable",
+ "name": "value",
+ "nameLocation": "2746:5:2",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2738:13:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 722,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "2738:7:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2711:41:2"
+ },
+ "returnParameters": {
+ "id": 727,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 726,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 728,
+ "src": "2771:4:2",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ },
+ "typeName": {
+ "id": 725,
+ "name": "bool",
+ "nodeType": "ElementaryTypeName",
+ "src": "2771:4:2",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bool",
+ "typeString": "bool"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "2770:6:2"
+ },
+ "scope": 729,
+ "src": "2690:87:2",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 730,
+ "src": "204:2575:2",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "106:2674:2"
+ },
+ "id": 2
+ },
+ "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol",
+ "exportedSymbols": {
+ "IERC20": [
+ 729
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 756,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 731,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "125:24:3"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
+ "file": "../IERC20.sol",
+ "id": 733,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 756,
+ "sourceUnit": 730,
+ "src": "151:37:3",
+ "symbolAliases": [
+ {
+ "foreign": {
+ "id": 732,
+ "name": "IERC20",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 729,
+ "src": "159:6:3",
+ "typeDescriptions": {}
+ },
+ "nameLocation": "-1:-1:-1"
+ }
+ ],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 735,
+ "name": "IERC20",
+ "nameLocations": [
+ "306:6:3"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 729,
+ "src": "306:6:3"
+ },
+ "id": 736,
+ "nodeType": "InheritanceSpecifier",
+ "src": "306:6:3"
+ }
+ ],
+ "canonicalName": "IERC20Metadata",
+ "contractDependencies": [],
+ "contractKind": "interface",
+ "documentation": {
+ "id": 734,
+ "nodeType": "StructuredDocumentation",
+ "src": "190:87:3",
+ "text": " @dev Interface for the optional metadata functions from the ERC-20 standard."
+ },
+ "fullyImplemented": false,
+ "id": 755,
+ "linearizedBaseContracts": [
+ 755,
+ 729
+ ],
+ "name": "IERC20Metadata",
+ "nameLocation": "288:14:3",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "documentation": {
+ "id": 737,
+ "nodeType": "StructuredDocumentation",
+ "src": "319:54:3",
+ "text": " @dev Returns the name of the token."
+ },
+ "functionSelector": "06fdde03",
+ "id": 742,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "name",
+ "nameLocation": "387:4:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 738,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "391:2:3"
+ },
+ "returnParameters": {
+ "id": 741,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 740,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 742,
+ "src": "417:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 739,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "417:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "416:15:3"
+ },
+ "scope": 755,
+ "src": "378:54:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 743,
+ "nodeType": "StructuredDocumentation",
+ "src": "438:56:3",
+ "text": " @dev Returns the symbol of the token."
+ },
+ "functionSelector": "95d89b41",
+ "id": 748,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "symbol",
+ "nameLocation": "508:6:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 744,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "514:2:3"
+ },
+ "returnParameters": {
+ "id": 747,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 746,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 748,
+ "src": "540:13:3",
+ "stateVariable": false,
+ "storageLocation": "memory",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_memory_ptr",
+ "typeString": "string"
+ },
+ "typeName": {
+ "id": 745,
+ "name": "string",
+ "nodeType": "ElementaryTypeName",
+ "src": "540:6:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_string_storage_ptr",
+ "typeString": "string"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "539:15:3"
+ },
+ "scope": 755,
+ "src": "499:56:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ },
+ {
+ "documentation": {
+ "id": 749,
+ "nodeType": "StructuredDocumentation",
+ "src": "561:65:3",
+ "text": " @dev Returns the decimals places of the token."
+ },
+ "functionSelector": "313ce567",
+ "id": 754,
+ "implemented": false,
+ "kind": "function",
+ "modifiers": [],
+ "name": "decimals",
+ "nameLocation": "640:8:3",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 750,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "648:2:3"
+ },
+ "returnParameters": {
+ "id": 753,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 752,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 754,
+ "src": "674:5:3",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ },
+ "typeName": {
+ "id": 751,
+ "name": "uint8",
+ "nodeType": "ElementaryTypeName",
+ "src": "674:5:3",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint8",
+ "typeString": "uint8"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "673:7:3"
+ },
+ "scope": 755,
+ "src": "631:50:3",
+ "stateMutability": "view",
+ "virtual": false,
+ "visibility": "external"
+ }
+ ],
+ "scope": 756,
+ "src": "278:405:3",
+ "usedErrors": [],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "125:559:3"
+ },
+ "id": 3
+ },
+ "@openzeppelin/contracts/utils/Context.sol": {
+ "ast": {
+ "absolutePath": "@openzeppelin/contracts/utils/Context.sol",
+ "exportedSymbols": {
+ "Context": [
+ 785
+ ]
+ },
+ "id": 786,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 757,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "101:24:4"
+ },
+ {
+ "abstract": true,
+ "baseContracts": [],
+ "canonicalName": "Context",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "documentation": {
+ "id": 758,
+ "nodeType": "StructuredDocumentation",
+ "src": "127:496:4",
+ "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."
+ },
+ "fullyImplemented": true,
+ "id": 785,
+ "linearizedBaseContracts": [
+ 785
+ ],
+ "name": "Context",
+ "nameLocation": "642:7:4",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 766,
+ "nodeType": "Block",
+ "src": "718:34:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 763,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "735:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 764,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "739:6:4",
+ "memberName": "sender",
+ "nodeType": "MemberAccess",
+ "src": "735:10:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "functionReturnParameters": 762,
+ "id": 765,
+ "nodeType": "Return",
+ "src": "728:17:4"
+ }
+ ]
+ },
+ "id": 767,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgSender",
+ "nameLocation": "665:10:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 759,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "675:2:4"
+ },
+ "returnParameters": {
+ "id": 762,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 761,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 767,
+ "src": "709:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 760,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "709:7:4",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "708:9:4"
+ },
+ "scope": 785,
+ "src": "656:96:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 775,
+ "nodeType": "Block",
+ "src": "825:32:4",
+ "statements": [
+ {
+ "expression": {
+ "expression": {
+ "id": 772,
+ "name": "msg",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": -15,
+ "src": "842:3:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_magic_message",
+ "typeString": "msg"
+ }
+ },
+ "id": 773,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "lValueRequested": false,
+ "memberLocation": "846:4:4",
+ "memberName": "data",
+ "nodeType": "MemberAccess",
+ "src": "842:8:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes calldata"
+ }
+ },
+ "functionReturnParameters": 771,
+ "id": 774,
+ "nodeType": "Return",
+ "src": "835:15:4"
+ }
+ ]
+ },
+ "id": 776,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_msgData",
+ "nameLocation": "767:8:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 768,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "775:2:4"
+ },
+ "returnParameters": {
+ "id": 771,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 770,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 776,
+ "src": "809:14:4",
+ "stateVariable": false,
+ "storageLocation": "calldata",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_calldata_ptr",
+ "typeString": "bytes"
+ },
+ "typeName": {
+ "id": 769,
+ "name": "bytes",
+ "nodeType": "ElementaryTypeName",
+ "src": "809:5:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_bytes_storage_ptr",
+ "typeString": "bytes"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "808:16:4"
+ },
+ "scope": 785,
+ "src": "758:99:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ },
+ {
+ "body": {
+ "id": 783,
+ "nodeType": "Block",
+ "src": "935:25:4",
+ "statements": [
+ {
+ "expression": {
+ "hexValue": "30",
+ "id": 781,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "number",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "952:1:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_rational_0_by_1",
+ "typeString": "int_const 0"
+ },
+ "value": "0"
+ },
+ "functionReturnParameters": 780,
+ "id": 782,
+ "nodeType": "Return",
+ "src": "945:8:4"
+ }
+ ]
+ },
+ "id": 784,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "_contextSuffixLength",
+ "nameLocation": "872:20:4",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 777,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "892:2:4"
+ },
+ "returnParameters": {
+ "id": 780,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 779,
+ "mutability": "mutable",
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "VariableDeclaration",
+ "scope": 784,
+ "src": "926:7:4",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 778,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "926:7:4",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "925:9:4"
+ },
+ "scope": 785,
+ "src": "863:97:4",
+ "stateMutability": "view",
+ "virtual": true,
+ "visibility": "internal"
+ }
+ ],
+ "scope": 786,
+ "src": "624:338:4",
+ "usedErrors": [],
+ "usedEvents": []
+ }
+ ],
+ "src": "101:862:4"
+ },
+ "id": 4
+ },
+ "contracts/core/wrapped-native-token/Apple.Token.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/Apple.Token.sol",
+ "exportedSymbols": {
+ "AppleToken": [
+ 812
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 813,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 787,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:5"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 788,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 813,
+ "sourceUnit": 652,
+ "src": "61:55:5",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 789,
+ "name": "ERC20",
+ "nameLocations": [
+ "143:5:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "143:5:5"
+ },
+ "id": 790,
+ "nodeType": "InheritanceSpecifier",
+ "src": "143:5:5"
+ }
+ ],
+ "canonicalName": "AppleToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 812,
+ "linearizedBaseContracts": [
+ 812,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "AppleToken",
+ "nameLocation": "129:10:5",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 797,
+ "nodeType": "Block",
+ "src": "192:2:5",
+ "statements": []
+ },
+ "id": 798,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "4170706c65",
+ "id": 793,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "176:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_14851888cf824d1588209f3afbbfa9d2275da13e228c93765dd00d895530ded1",
+ "typeString": "literal_string \"Apple\""
+ },
+ "value": "Apple"
+ },
+ {
+ "hexValue": "415054",
+ "id": 794,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "185:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_3a540c592f9dbcbbe2f3f7f7a25a9554cef45a0c93b7209090ddcb77180f6ab1",
+ "typeString": "literal_string \"APT\""
+ },
+ "value": "APT"
+ }
+ ],
+ "id": 795,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 792,
+ "name": "ERC20",
+ "nameLocations": [
+ "170:5:5"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "170:5:5"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "170:21:5"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 791,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "167:2:5"
+ },
+ "returnParameters": {
+ "id": 796,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "192:0:5"
+ },
+ "scope": 812,
+ "src": "156:38:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 810,
+ "nodeType": "Block",
+ "src": "252:37:5",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 806,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 800,
+ "src": "269:3:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 807,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 802,
+ "src": "274:6:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 805,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "263:5:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 808,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "263:18:5",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 809,
+ "nodeType": "ExpressionStatement",
+ "src": "263:18:5"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 811,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "211:4:5",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 803,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 800,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "224:3:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 811,
+ "src": "216:11:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 799,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "216:7:5",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 802,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "237:6:5",
+ "nodeType": "VariableDeclaration",
+ "scope": 811,
+ "src": "229:14:5",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 801,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "229:7:5",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "215:29:5"
+ },
+ "returnParameters": {
+ "id": 804,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "252:0:5"
+ },
+ "scope": 812,
+ "src": "202:87:5",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 813,
+ "src": "120:205:5",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:292:5"
+ },
+ "id": 5
+ },
+ "contracts/core/wrapped-native-token/CherryToken.sol": {
+ "ast": {
+ "absolutePath": "contracts/core/wrapped-native-token/CherryToken.sol",
+ "exportedSymbols": {
+ "CherryToken": [
+ 839
+ ],
+ "Context": [
+ 785
+ ],
+ "ERC20": [
+ 651
+ ],
+ "IERC20": [
+ 729
+ ],
+ "IERC20Errors": [
+ 41
+ ],
+ "IERC20Metadata": [
+ 755
+ ]
+ },
+ "id": 840,
+ "license": "MIT",
+ "nodeType": "SourceUnit",
+ "nodes": [
+ {
+ "id": 814,
+ "literals": [
+ "solidity",
+ "^",
+ "0.8",
+ ".20"
+ ],
+ "nodeType": "PragmaDirective",
+ "src": "33:24:6"
+ },
+ {
+ "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
+ "id": 815,
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "ImportDirective",
+ "scope": 840,
+ "sourceUnit": 652,
+ "src": "61:55:6",
+ "symbolAliases": [],
+ "unitAlias": ""
+ },
+ {
+ "abstract": false,
+ "baseContracts": [
+ {
+ "baseName": {
+ "id": 816,
+ "name": "ERC20",
+ "nameLocations": [
+ "144:5:6"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "144:5:6"
+ },
+ "id": 817,
+ "nodeType": "InheritanceSpecifier",
+ "src": "144:5:6"
+ }
+ ],
+ "canonicalName": "CherryToken",
+ "contractDependencies": [],
+ "contractKind": "contract",
+ "fullyImplemented": true,
+ "id": 839,
+ "linearizedBaseContracts": [
+ 839,
+ 651,
+ 41,
+ 755,
+ 729,
+ 785
+ ],
+ "name": "CherryToken",
+ "nameLocation": "129:11:6",
+ "nodeType": "ContractDefinition",
+ "nodes": [
+ {
+ "body": {
+ "id": 824,
+ "nodeType": "Block",
+ "src": "194:2:6",
+ "statements": []
+ },
+ "id": 825,
+ "implemented": true,
+ "kind": "constructor",
+ "modifiers": [
+ {
+ "arguments": [
+ {
+ "hexValue": "436865727279",
+ "id": 820,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "177:8:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_1435e0cbfdb80aa113dde9d730eb5e91954373136d7d2c495a319180045ba35f",
+ "typeString": "literal_string \"Cherry\""
+ },
+ "value": "Cherry"
+ },
+ {
+ "hexValue": "434854",
+ "id": 821,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": true,
+ "kind": "string",
+ "lValueRequested": false,
+ "nodeType": "Literal",
+ "src": "187:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_stringliteral_bb0f788d78f4c5d8186bc7de3f54657763bff7144fb3d7e1db051cf56d30fe18",
+ "typeString": "literal_string \"CHT\""
+ },
+ "value": "CHT"
+ }
+ ],
+ "id": 822,
+ "kind": "baseConstructorSpecifier",
+ "modifierName": {
+ "id": 819,
+ "name": "ERC20",
+ "nameLocations": [
+ "171:5:6"
+ ],
+ "nodeType": "IdentifierPath",
+ "referencedDeclaration": 651,
+ "src": "171:5:6"
+ },
+ "nodeType": "ModifierInvocation",
+ "src": "171:22:6"
+ }
+ ],
+ "name": "",
+ "nameLocation": "-1:-1:-1",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 818,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "168:2:6"
+ },
+ "returnParameters": {
+ "id": 823,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "194:0:6"
+ },
+ "scope": 839,
+ "src": "157:39:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ },
+ {
+ "body": {
+ "id": 837,
+ "nodeType": "Block",
+ "src": "254:37:6",
+ "statements": [
+ {
+ "expression": {
+ "arguments": [
+ {
+ "id": 833,
+ "name": "_to",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 827,
+ "src": "271:3:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ {
+ "id": 834,
+ "name": "amount",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 829,
+ "src": "276:6:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ }
+ ],
+ "expression": {
+ "argumentTypes": [
+ {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ ],
+ "id": 832,
+ "name": "_mint",
+ "nodeType": "Identifier",
+ "overloadedDeclarations": [],
+ "referencedDeclaration": 491,
+ "src": "265:5:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
+ "typeString": "function (address,uint256)"
+ }
+ },
+ "id": 835,
+ "isConstant": false,
+ "isLValue": false,
+ "isPure": false,
+ "kind": "functionCall",
+ "lValueRequested": false,
+ "nameLocations": [],
+ "names": [],
+ "nodeType": "FunctionCall",
+ "src": "265:18:6",
+ "tryCall": false,
+ "typeDescriptions": {
+ "typeIdentifier": "t_tuple$__$",
+ "typeString": "tuple()"
+ }
+ },
+ "id": 836,
+ "nodeType": "ExpressionStatement",
+ "src": "265:18:6"
+ }
+ ]
+ },
+ "functionSelector": "40c10f19",
+ "id": 838,
+ "implemented": true,
+ "kind": "function",
+ "modifiers": [],
+ "name": "mint",
+ "nameLocation": "213:4:6",
+ "nodeType": "FunctionDefinition",
+ "parameters": {
+ "id": 830,
+ "nodeType": "ParameterList",
+ "parameters": [
+ {
+ "constant": false,
+ "id": 827,
+ "mutability": "mutable",
+ "name": "_to",
+ "nameLocation": "226:3:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 838,
+ "src": "218:11:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ },
+ "typeName": {
+ "id": 826,
+ "name": "address",
+ "nodeType": "ElementaryTypeName",
+ "src": "218:7:6",
+ "stateMutability": "nonpayable",
+ "typeDescriptions": {
+ "typeIdentifier": "t_address",
+ "typeString": "address"
+ }
+ },
+ "visibility": "internal"
+ },
+ {
+ "constant": false,
+ "id": 829,
+ "mutability": "mutable",
+ "name": "amount",
+ "nameLocation": "239:6:6",
+ "nodeType": "VariableDeclaration",
+ "scope": 838,
+ "src": "231:14:6",
+ "stateVariable": false,
+ "storageLocation": "default",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ },
+ "typeName": {
+ "id": 828,
+ "name": "uint256",
+ "nodeType": "ElementaryTypeName",
+ "src": "231:7:6",
+ "typeDescriptions": {
+ "typeIdentifier": "t_uint256",
+ "typeString": "uint256"
+ }
+ },
+ "visibility": "internal"
+ }
+ ],
+ "src": "217:29:6"
+ },
+ "returnParameters": {
+ "id": 831,
+ "nodeType": "ParameterList",
+ "parameters": [],
+ "src": "254:0:6"
+ },
+ "scope": 839,
+ "src": "204:87:6",
+ "stateMutability": "nonpayable",
+ "virtual": false,
+ "visibility": "public"
+ }
+ ],
+ "scope": 840,
+ "src": "120:207:6",
+ "usedErrors": [
+ 11,
+ 16,
+ 21,
+ 30,
+ 35,
+ 40
+ ],
+ "usedEvents": [
+ 663,
+ 672
+ ]
+ }
+ ],
+ "src": "33:294:6"
+ },
+ "id": 6
+ }
+ },
+ "contracts": {
+ "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": {
+ "IERC1155Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "idsLength",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "valuesLength",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC1155InvalidArrayLength",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidOperator",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC1155MissingApprovalForAll",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC20Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "allowance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientAllowance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "balance",
+ "type": "uint256"
+ },
+ {
+ "internalType": "uint256",
+ "name": "needed",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC20InsufficientBalance",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "receiver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidReceiver",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSender",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "spender",
+ "type": "address"
+ }
+ ],
+ "name": "ERC20InvalidSpender",
+ "type": "error"
+ }
+ ],
+ "evm": {
+ "bytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "deployedBytecode": {
+ "functionDebugData": {},
+ "generatedSources": [],
+ "immutableReferences": {},
+ "linkReferences": {},
+ "object": "",
+ "opcodes": "",
+ "sourceMap": ""
+ },
+ "methodIdentifiers": {}
+ },
+ "metadata": "{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC-20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]}},\"version\":1}"
+ },
+ "IERC721Errors": {
+ "abi": [
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "sender",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ },
+ {
+ "internalType": "address",
+ "name": "owner",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721IncorrectOwner",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ },
+ {
+ "internalType": "uint256",
+ "name": "tokenId",
+ "type": "uint256"
+ }
+ ],
+ "name": "ERC721InsufficientApproval",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "approver",
+ "type": "address"
+ }
+ ],
+ "name": "ERC721InvalidApprover",
+ "type": "error"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "address",
+ "name": "operator",
+ "type": "address"
+ }
+ ],
+ "name": "ERC72