diff --git a/apps/remix-ide/src/assets/js/parser/antlr.js b/apps/remix-ide/src/assets/js/parser/antlr.js index 3785806311..90debb614f 100644 --- a/apps/remix-ide/src/assets/js/parser/antlr.js +++ b/apps/remix-ide/src/assets/js/parser/antlr.js @@ -149,6 +149,21 @@ var SolidityParser = (() => { } }); + // node_modules/has-proto/index.js + var require_has_proto = __commonJS({ + "node_modules/has-proto/index.js"(exports, module) { + init_process_shim(); + "use strict"; + var test = { + foo: {} + }; + var $Object = Object; + module.exports = function hasProto() { + return {__proto__: test}.foo === test.foo && !({__proto__: null} instanceof $Object); + }; + } + }); + // node_modules/function-bind/implementation.js var require_implementation = __commonJS({ "node_modules/function-bind/implementation.js"(exports, module) { @@ -253,16 +268,17 @@ var SolidityParser = (() => { } }() : throwTypeError; var hasSymbols = require_has_symbols()(); - var getProto = Object.getPrototypeOf || function(x) { + var hasProto = require_has_proto()(); + var getProto = Object.getPrototypeOf || (hasProto ? function(x) { return x.__proto__; - }; + } : null); var needsEval = {}; - var TypedArray = typeof Uint8Array === "undefined" ? undefined2 : getProto(Uint8Array); + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array); var INTRINSICS = { "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError, "%Array%": Array, "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer, - "%ArrayIteratorPrototype%": hasSymbols ? getProto([][Symbol.iterator]()) : undefined2, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2, "%AsyncFromSyncIteratorPrototype%": undefined2, "%AsyncFunction%": needsEval, "%AsyncGenerator%": needsEval, @@ -270,6 +286,8 @@ var SolidityParser = (() => { "%AsyncIteratorPrototype%": needsEval, "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics, "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array, "%Boolean%": Boolean, "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView, "%Date%": Date, @@ -290,10 +308,10 @@ var SolidityParser = (() => { "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array, "%isFinite%": isFinite, "%isNaN%": isNaN, - "%IteratorPrototype%": hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined2, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2, "%JSON%": typeof JSON === "object" ? JSON : undefined2, "%Map%": typeof Map === "undefined" ? undefined2 : Map, - "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols ? undefined2 : getProto(new Map()[Symbol.iterator]()), + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto(new Map()[Symbol.iterator]()), "%Math%": Math, "%Number%": Number, "%Object%": Object, @@ -306,10 +324,10 @@ var SolidityParser = (() => { "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect, "%RegExp%": RegExp, "%Set%": typeof Set === "undefined" ? undefined2 : Set, - "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols ? undefined2 : getProto(new Set()[Symbol.iterator]()), + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto(new Set()[Symbol.iterator]()), "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer, "%String%": String, - "%StringIteratorPrototype%": hasSymbols ? getProto(""[Symbol.iterator]()) : undefined2, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2, "%Symbol%": hasSymbols ? Symbol : undefined2, "%SyntaxError%": $SyntaxError, "%ThrowTypeError%": ThrowTypeError, @@ -324,6 +342,15 @@ var SolidityParser = (() => { "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef, "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet }; + if (getProto) { + try { + null.error; + } catch (e) { + errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var errorProto; var doEval = function doEval2(name) { var value; if (name === "%AsyncFunction%") { @@ -339,7 +366,7 @@ var SolidityParser = (() => { } } else if (name === "%AsyncIteratorPrototype%") { var gen = doEval2("%AsyncGenerator%"); - if (gen) { + if (gen && getProto) { value = getProto(gen.prototype); } } @@ -405,6 +432,7 @@ var SolidityParser = (() => { var $spliceApply = bind.call(Function.apply, Array.prototype.splice); var $replace = bind.call(Function.call, String.prototype.replace); var $strSlice = bind.call(Function.call, String.prototype.slice); + var $exec = bind.call(Function.call, RegExp.prototype.exec); var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; var reEscapeChar = /\\(\\)?/g; var stringToPath = function stringToPath2(string) { @@ -451,6 +479,9 @@ var SolidityParser = (() => { if (arguments.length > 1 && typeof allowMissing !== "boolean") { throw new $TypeError('"allowMissing" argument must be a boolean'); } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } var parts = stringToPath(name); var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); @@ -684,12 +715,35 @@ var SolidityParser = (() => { } }; var toStr = Object.prototype.toString; + var objectClass = "[object Object]"; var fnClass = "[object Function]"; var genClass = "[object GeneratorFunction]"; + var ddaClass = "[object HTMLAllCollection]"; + var ddaClass2 = "[object HTML document.all class]"; + var ddaClass3 = "[object HTMLCollection]"; var hasToStringTag = typeof Symbol === "function" && !!Symbol.toStringTag; - var documentDotAll = typeof document === "object" && typeof document.all === "undefined" && document.all !== void 0 ? document.all : {}; + var isIE68 = !(0 in [,]); + var isDDA = function isDocumentDotAll() { + return false; + }; + if (typeof document === "object") { + all = document.all; + if (toStr.call(all) === toStr.call(document.all)) { + isDDA = function isDocumentDotAll(value) { + if ((isIE68 || !value) && (typeof value === "undefined" || typeof value === "object")) { + try { + var str = toStr.call(value); + return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value("") == null; + } catch (e) { + } + } + return false; + }; + } + } + var all; module.exports = reflectApply ? function isCallable(value) { - if (value === documentDotAll) { + if (isDDA(value)) { return true; } if (!value) { @@ -698,9 +752,6 @@ var SolidityParser = (() => { if (typeof value !== "function" && typeof value !== "object") { return false; } - if (typeof value === "function" && !value.prototype) { - return true; - } try { reflectApply(value, null, badArrayLike); } catch (e) { @@ -708,9 +759,9 @@ var SolidityParser = (() => { return false; } } - return !isES6ClassFn(value); + return !isES6ClassFn(value) && tryFunctionObject(value); } : function isCallable(value) { - if (value === documentDotAll) { + if (isDDA(value)) { return true; } if (!value) { @@ -719,9 +770,6 @@ var SolidityParser = (() => { if (typeof value !== "function" && typeof value !== "object") { return false; } - if (typeof value === "function" && !value.prototype) { - return true; - } if (hasToStringTag) { return tryFunctionObject(value); } @@ -729,7 +777,10 @@ var SolidityParser = (() => { return false; } var strClass = toStr.call(value); - return strClass === fnClass || strClass === genClass; + if (strClass !== fnClass && strClass !== genClass && !/^\[object HTML/.test(strClass)) { + return false; + } + return tryFunctionObject(value); }; } }); @@ -824,9 +875,9 @@ var SolidityParser = (() => { } }); - // node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js - var require_getOwnPropertyDescriptor = __commonJS({ - "node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js"(exports, module) { + // node_modules/gopd/index.js + var require_gopd = __commonJS({ + "node_modules/gopd/index.js"(exports, module) { init_process_shim(); "use strict"; var GetIntrinsic = require_get_intrinsic(); @@ -842,18 +893,22 @@ var SolidityParser = (() => { } }); - // node_modules/is-typed-array/index.js - var require_is_typed_array = __commonJS({ - "node_modules/is-typed-array/index.js"(exports, module) { + // node_modules/which-typed-array/index.js + var require_which_typed_array = __commonJS({ + "node_modules/which-typed-array/index.js"(exports, module) { init_process_shim(); "use strict"; var forEach = require_for_each(); var availableTypedArrays = require_available_typed_arrays(); + var callBind = require_call_bind(); var callBound = require_callBound(); + var gOPD = require_gopd(); var $toString = callBound("Object.prototype.toString"); var hasToStringTag = require_shams2()(); var g = typeof globalThis === "undefined" ? global : globalThis; var typedArrays = availableTypedArrays(); + var $slice = callBound("String.prototype.slice"); + var getPrototypeOf = Object.getPrototypeOf; var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array, value) { for (var i = 0; i < array.length; i += 1) { if (array[i] === value) { @@ -862,10 +917,7 @@ var SolidityParser = (() => { } return -1; }; - var $slice = callBound("String.prototype.slice"); - var toStrTags = {}; - var gOPD = require_getOwnPropertyDescriptor(); - var getPrototypeOf = Object.getPrototypeOf; + var cache = {__proto__: null}; if (hasToStringTag && gOPD && getPrototypeOf) { forEach(typedArrays, function(typedArray) { var arr = new g[typedArray](); @@ -876,94 +928,72 @@ var SolidityParser = (() => { var superProto = getPrototypeOf(proto); descriptor = gOPD(superProto, Symbol.toStringTag); } - toStrTags[typedArray] = descriptor.get; + cache["$" + typedArray] = callBind(descriptor.get); } }); + } else { + forEach(typedArrays, function(typedArray) { + var arr = new g[typedArray](); + cache["$" + typedArray] = callBind(arr.slice); + }); } var tryTypedArrays = function tryAllTypedArrays(value) { - var anyTrue = false; - forEach(toStrTags, function(getter, typedArray) { - if (!anyTrue) { + var found = false; + forEach(cache, function(getter, typedArray) { + if (!found) { try { - anyTrue = getter.call(value) === typedArray; + if ("$" + getter(value) === typedArray) { + found = $slice(typedArray, 1); + } } catch (e) { } } }); - return anyTrue; + return found; }; - module.exports = function isTypedArray(value) { + var trySlices = function tryAllSlices(value) { + var found = false; + forEach(cache, function(getter, name) { + if (!found) { + try { + getter(value); + found = $slice(name, 1); + } catch (e) { + } + } + }); + return found; + }; + module.exports = function whichTypedArray(value) { if (!value || typeof value !== "object") { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { + if (!hasToStringTag) { var tag = $slice($toString(value), 8, -1); - return $indexOf(typedArrays, tag) > -1; + if ($indexOf(typedArrays, tag) > -1) { + return tag; + } + if (tag !== "Object") { + return false; + } + return trySlices(value); } if (!gOPD) { - return false; + return null; } return tryTypedArrays(value); }; } }); - // node_modules/which-typed-array/index.js - var require_which_typed_array = __commonJS({ - "node_modules/which-typed-array/index.js"(exports, module) { + // node_modules/is-typed-array/index.js + var require_is_typed_array = __commonJS({ + "node_modules/is-typed-array/index.js"(exports, module) { init_process_shim(); "use strict"; - var forEach = require_for_each(); - var availableTypedArrays = require_available_typed_arrays(); - var callBound = require_callBound(); - var $toString = callBound("Object.prototype.toString"); - var hasToStringTag = require_shams2()(); - var g = typeof globalThis === "undefined" ? global : globalThis; - var typedArrays = availableTypedArrays(); - var $slice = callBound("String.prototype.slice"); - var toStrTags = {}; - var gOPD = require_getOwnPropertyDescriptor(); - var getPrototypeOf = Object.getPrototypeOf; - if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function(typedArray) { - if (typeof g[typedArray] === "function") { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - } - }); - } - var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach(toStrTags, function(getter, typedArray) { - if (!foundName) { - try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; - } - } catch (e) { - } - } - }); - return foundName; - }; - var isTypedArray = require_is_typed_array(); - module.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { - return false; - } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { - return $slice($toString(value), 8, -1); - } - return tryTypedArrays(value); + var whichTypedArray = require_which_typed_array(); + module.exports = function isTypedArray(value) { + return !!whichTypedArray(value); }; } }); @@ -1550,7 +1580,7 @@ var SolidityParser = (() => { if (array) { str = str.split("\n").map(function(line) { return " " + line; - }).join("\n").substr(2); + }).join("\n").slice(2); } else { str = "\n" + str.split("\n").map(function(line) { return " " + line; @@ -1567,7 +1597,7 @@ var SolidityParser = (() => { } name = JSON.stringify("" + key); if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); + name = name.slice(1, -1); name = ctx.stylize(name, "name"); } else { name = name.replace(/'/g, "\\'").replace(/\\"/g, '"').replace(/(^"|"$)/g, "'"); @@ -2708,6 +2738,57 @@ var SolidityParser = (() => { } }); + // node_modules/define-data-property/index.js + var require_define_data_property = __commonJS({ + "node_modules/define-data-property/index.js"(exports, module) { + init_process_shim(); + "use strict"; + var hasPropertyDescriptors = require_has_property_descriptors()(); + var GetIntrinsic = require_get_intrinsic(); + var $defineProperty = hasPropertyDescriptors && GetIntrinsic("%Object.defineProperty%", true); + var $SyntaxError = GetIntrinsic("%SyntaxError%"); + var $TypeError = GetIntrinsic("%TypeError%"); + var gopd = require_gopd(); + module.exports = function defineDataProperty(obj, property, value) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new $TypeError("`obj` must be an object or a function`"); + } + if (typeof property !== "string" && typeof property !== "symbol") { + throw new $TypeError("`property` must be a string or a symbol`"); + } + if (arguments.length > 3 && typeof arguments[3] !== "boolean" && arguments[3] !== null) { + throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null"); + } + if (arguments.length > 4 && typeof arguments[4] !== "boolean" && arguments[4] !== null) { + throw new $TypeError("`nonWritable`, if provided, must be a boolean or null"); + } + if (arguments.length > 5 && typeof arguments[5] !== "boolean" && arguments[5] !== null) { + throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null"); + } + if (arguments.length > 6 && typeof arguments[6] !== "boolean") { + throw new $TypeError("`loose`, if provided, must be a boolean"); + } + var nonEnumerable = arguments.length > 3 ? arguments[3] : null; + var nonWritable = arguments.length > 4 ? arguments[4] : null; + var nonConfigurable = arguments.length > 5 ? arguments[5] : null; + var loose = arguments.length > 6 ? arguments[6] : false; + var desc = !!gopd && gopd(obj, property); + if ($defineProperty) { + $defineProperty(obj, property, { + configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable, + enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable, + value, + writable: nonWritable === null && desc ? desc.writable : !nonWritable + }); + } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) { + obj[property] = value; + } else { + throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable."); + } + }; + } + }); + // node_modules/define-properties/index.js var require_define_properties = __commonJS({ "node_modules/define-properties/index.js"(exports, module) { @@ -2717,25 +2798,25 @@ var SolidityParser = (() => { var hasSymbols = typeof Symbol === "function" && typeof Symbol("foo") === "symbol"; var toStr = Object.prototype.toString; var concat = Array.prototype.concat; - var origDefineProperty = Object.defineProperty; + var defineDataProperty = require_define_data_property(); var isFunction = function(fn) { return typeof fn === "function" && toStr.call(fn) === "[object Function]"; }; - var hasPropertyDescriptors = require_has_property_descriptors()(); - var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; + var supportsDescriptors = require_has_property_descriptors()(); var defineProperty = function(object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; + if (name in object) { + if (predicate === true) { + if (object[name] === value) { + return; + } + } else if (!isFunction(predicate) || !predicate()) { + return; + } } if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value, - writable: true - }); + defineDataProperty(object, name, value, true); } else { - object[name] = value; + defineDataProperty(object, name, value); } }; var defineProperties = function(object, map) { @@ -22191,44 +22272,43 @@ var SolidityParser = (() => { SolidityLexer.T__93 = 94; SolidityLexer.T__94 = 95; SolidityLexer.T__95 = 96; - SolidityLexer.T__96 = 97; - SolidityLexer.Int = 98; - SolidityLexer.Uint = 99; - SolidityLexer.Byte = 100; - SolidityLexer.Fixed = 101; - SolidityLexer.Ufixed = 102; - SolidityLexer.BooleanLiteral = 103; - SolidityLexer.DecimalNumber = 104; - SolidityLexer.HexNumber = 105; - SolidityLexer.NumberUnit = 106; - SolidityLexer.HexLiteralFragment = 107; - SolidityLexer.ReservedKeyword = 108; - SolidityLexer.AnonymousKeyword = 109; - SolidityLexer.BreakKeyword = 110; - SolidityLexer.ConstantKeyword = 111; - SolidityLexer.ImmutableKeyword = 112; - SolidityLexer.ContinueKeyword = 113; - SolidityLexer.LeaveKeyword = 114; - SolidityLexer.ExternalKeyword = 115; - SolidityLexer.IndexedKeyword = 116; - SolidityLexer.InternalKeyword = 117; - SolidityLexer.PayableKeyword = 118; - SolidityLexer.PrivateKeyword = 119; - SolidityLexer.PublicKeyword = 120; - SolidityLexer.VirtualKeyword = 121; - SolidityLexer.PureKeyword = 122; - SolidityLexer.TypeKeyword = 123; - SolidityLexer.ViewKeyword = 124; - SolidityLexer.GlobalKeyword = 125; - SolidityLexer.ConstructorKeyword = 126; - SolidityLexer.FallbackKeyword = 127; - SolidityLexer.ReceiveKeyword = 128; - SolidityLexer.Identifier = 129; - SolidityLexer.StringLiteralFragment = 130; - SolidityLexer.VersionLiteral = 131; - SolidityLexer.WS = 132; - SolidityLexer.COMMENT = 133; - SolidityLexer.LINE_COMMENT = 134; + SolidityLexer.Int = 97; + SolidityLexer.Uint = 98; + SolidityLexer.Byte = 99; + SolidityLexer.Fixed = 100; + SolidityLexer.Ufixed = 101; + SolidityLexer.BooleanLiteral = 102; + SolidityLexer.DecimalNumber = 103; + SolidityLexer.HexNumber = 104; + SolidityLexer.NumberUnit = 105; + SolidityLexer.HexLiteralFragment = 106; + SolidityLexer.ReservedKeyword = 107; + SolidityLexer.AnonymousKeyword = 108; + SolidityLexer.BreakKeyword = 109; + SolidityLexer.ConstantKeyword = 110; + SolidityLexer.ImmutableKeyword = 111; + SolidityLexer.ContinueKeyword = 112; + SolidityLexer.LeaveKeyword = 113; + SolidityLexer.ExternalKeyword = 114; + SolidityLexer.IndexedKeyword = 115; + SolidityLexer.InternalKeyword = 116; + SolidityLexer.PayableKeyword = 117; + SolidityLexer.PrivateKeyword = 118; + SolidityLexer.PublicKeyword = 119; + SolidityLexer.VirtualKeyword = 120; + SolidityLexer.PureKeyword = 121; + SolidityLexer.TypeKeyword = 122; + SolidityLexer.ViewKeyword = 123; + SolidityLexer.GlobalKeyword = 124; + SolidityLexer.ConstructorKeyword = 125; + SolidityLexer.FallbackKeyword = 126; + SolidityLexer.ReceiveKeyword = 127; + SolidityLexer.Identifier = 128; + SolidityLexer.StringLiteralFragment = 129; + SolidityLexer.VersionLiteral = 130; + SolidityLexer.WS = 131; + SolidityLexer.COMMENT = 132; + SolidityLexer.LINE_COMMENT = 133; SolidityLexer.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" @@ -22333,7 +22413,6 @@ var SolidityParser = (() => { "T__93", "T__94", "T__95", - "T__96", "Int", "Uint", "Byte", @@ -22409,6 +22488,14 @@ var SolidityParser = (() => { "'error'", "'using'", "'for'", + "'|'", + "'&'", + "'+'", + "'-'", + "'/'", + "'%'", + "'=='", + "'!='", "'struct'", "'modifier'", "'function'", @@ -22444,20 +22531,11 @@ var SolidityParser = (() => { "'--'", "'new'", "':'", - "'+'", - "'-'", - "'after'", "'delete'", "'!'", "'**'", - "'/'", - "'%'", "'<<'", "'>>'", - "'&'", - "'|'", - "'=='", - "'!='", "'&&'", "'?'", "'|='", @@ -22609,7 +22687,6 @@ var SolidityParser = (() => { void 0, void 0, void 0, - void 0, "Int", "Uint", "Byte", @@ -22650,52 +22727,10 @@ var SolidityParser = (() => { ]; SolidityLexer.VOCABULARY = new import_VocabularyImpl.VocabularyImpl(_SolidityLexer._LITERAL_NAMES, _SolidityLexer._SYMBOLIC_NAMES, []); SolidityLexer._serializedATNSegments = 4; - SolidityLexer._serializedATNSegment0 = `\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x88\u0757\b     \x07 \x07\b \b  - -\v \v\f \f\r \r                   ! !" "# #$ $% %& &' '( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _\` \`a ab bc cd de ef fg gh hi ij jk kl lm mn no op pq qr rs st tu uv vw wx xy yz z{ {| |} }~ ~\x7F \x7F\x80 \x80\x81 \x81\x82 \x82\x83 \x83\x84 \x84\x85 \x85\x86 \x86\x87 \x87\x88 \x88\x89 \x89\x8A \x8A\x8B \x8B\x8C \x8C\x8D \x8D\x8E \x8E\x8F \x8F\x07\x07\b\b\b   - -\v\v\v\f\f\r\r\r        !!!!!!"""""##$$%%%%%%%%&&''''''''((()))))))********+++++++++,,,-----....//////00000011111111112222222223334444444555555666667777777888899999:::::::;;;;;<<<===>>>>??@@AABBBBBBCCCCCCCDDEEEFFGGHHHIIIJJKKLLLMMMNNNOOPPPQQQRRRSSSSTTTTUUUVVVWWWXXXYYYZZZZ[[[\\\\\\]]]]]]]^^^^^________\`\`\`aaaaaaaaabbbbbbbbbccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\u038B -cdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\u0464 -deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\u0542 -efffffffffffff\u0550 -f\rff\u0551fff\u0556 -f\rff\u0557f\u055A -fggggggggggggggg\u056A -g\rgg\u056Bggg\u0570 -g\rgg\u0571g\u0574 -ghhhhhhhhhh\u057F -hiii\u0583 -iiii\u0587 -iiii\u058B -ijjj\u058F -jj\x07j\u0592 -j\fjj\u0595\vjkkkklll\u059D -ll\x07l\u05A0 -l\fll\u05A3\vlmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm\u05DD -mnnnnnnn\u05E5 -nnnnn\u05EA -nnn\u05ED -noooppqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq\u064C -qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvvvvvvvwwwwwwxxxxxxxxxyyyyyyyyzzzzzzzzz{{{{{{{{||||||||}}}}}}}~~~~~~~~\x7F\x7F\x7F\x7F\x7F\x80\x80\x80\x80\x80\x81\x81\x81\x81\x81\x82\x82\x82\x82\x82\x82\x82\x83\x83\x83\x83\x83\x83\x83\x83\x83\x83\x83\x83\x84\x84\x84\x84\x84\x84\x84\x84\x84\x85\x85\x85\x85\x85\x85\x85\x85\x86\x86\x07\x86\u06EE -\x86\f\x86\x86\u06F1\v\x86\x87\x87\x88\x88\x89\x89\x89\x89\x89\x89\x89\x89\u06FE -\x89\x89\x89\x07\x89\u0702 -\x89\f\x89\x89\u0705\v\x89\x89\x89\x89\x89\x89\x89\x89\x89\x89\u070F -\x89\x89\x89\x07\x89\u0713 -\x89\f\x89\x89\u0716\v\x89\x89\x89\u0719 -\x89\x8A\x8A\x8A\x8A\u071E -\x8A\x8B\x8B\x8B\x8B\u0723 -\x8B\x8C\x8C\u0726 -\x8C\r\x8C\x8C\u0727\x8C\x8C\x8C\u072C -\x8C\r\x8C\x8C\u072D\x8C\x8C\x8C\u0732 -\x8C\r\x8C\x8C\u0733\x8C\u0736 -\x8C\x8D\x8D\u0739 -\x8D\r\x8D\x8D\u073A\x8D\x8D\x8E\x8E\x8E\x8E\x07\x8E\u0743 -\x8E\f\x8E\x8E\u0746\v\x8E\x8E\x8E\x8E\x8E\x8E\x8F\x8F\x8F\x8F\x07\x8F\u0751 -\x8F\f\x8F\x8F\u0754\v\x8F\x8F\x8F\u0744\x90\x07 \v\x07\r\b  -\v\f\r!#%')+-/13579;= ?!A"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\x7FA\x81B\x83C\x85D\x87E\x89F\x8BG\x8DH\x8FI\x91J\x93K\x95L\x97M\x99N\x9BO\x9DP\x9FQ\xA1R\xA3S\xA5T\xA7U\xA9V\xABW\xADX\xAFY\xB1Z\xB3[\xB5\\\xB7]\xB9^\xBB_\xBD\`\xBFa\xC1b\xC3c\xC5d\xC7e\xC9f\xCBg\xCDh\xCFi\xD1j\xD3\xD5k\xD7\xD9l\xDBm\xDD\xDF\xE1n\xE3o\xE5p\xE7q\xE9r\xEBs\xEDt\xEFu\xF1v\xF3w\xF5x\xF7y\xF9z\xFB{\xFD|\xFF}\u0101~\u0103\x7F\u0105\x80\u0107\x81\u0109\x82\u010B\x83\u010D\u010F\u0111\x84\u0113\u0115\u0117\x85\u0119\x86\u011B\x87\u011D\x88\f2;GGggZZzz2;CHch&&C\\aac|\x07&&2;C\\aac|\f\f$$^^\f\f))^^\v\f""\f\f\u07E8\x07 \v\r!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}\x7F\x81\x83\x85\x87\x89\x8B\x8D\x8F\x91\x93\x95\x97\x99\x9B\x9D\x9F\xA1\xA3\xA5\xA7\xA9\xAB\xAD\xAF\xB1\xB3\xB5\xB7\xB9\xBB\xBD\xBF\xC1\xC3\xC5\xC7\xC9\xCB\xCD\xCF\xD1\xD5\xD9\xDB\xE1\xE3\xE5\xE7`; - SolidityLexer._serializedATNSegment1 = "\xE9\xEB\xED\xEF\xF1\xF3\xF5\xF7\xF9\xFB\xFD\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u0111\u0117\u0119\u011B\u011D\u011F\u0126\x07\u0128 \u012A\v\u012D\r\u012F\u0131\u0134\u0136\u0138\u013B\u013D\u0140\u0147\u014C!\u014E#\u0150%\u0152'\u015B)\u0164+\u016E-\u0176/\u01791\u017B3\u017D5\u01837\u01899\u018D;\u0194=\u019D?\u01A6A\u01AEC\u01B4E\u01B9G\u01BBI\u01BDK\u01C5M\u01C7O\u01CFQ\u01D2S\u01D9U\u01E1W\u01EAY\u01ED[\u01F2]\u01F6_\u01FCa\u0202c\u020Ce\u0215g\u0218i\u021Fk\u0225m\u022Ao\u0231q\u0235s\u023Au\u0241w\u0246y\u0249{\u024C}\u0250\x7F\u0252\x81\u0254\x83\u0256\x85\u025C\x87\u0263\x89\u0265\x8B\u0268\x8D\u026A\x8F\u026C\x91\u026F\x93\u0272\x95\u0274\x97\u0276\x99\u0279\x9B\u027C\x9D\u027F\x9F\u0281\xA1\u0284\xA3\u0287\xA5\u028A\xA7\u028E\xA9\u0292\xAB\u0295\xAD\u0298\xAF\u029B\xB1\u029E\xB3\u02A1\xB5\u02A5\xB7\u02A8\xB9\u02AB\xBB\u02B2\xBD\u02B7\xBF\u02BF\xC1\u02C2\xC3\u02CB\xC5\u038A\xC7\u0463\xC9\u0541\xCB\u0559\xCD\u0573\xCF\u057E\xD1\u0586\xD3\u058C\xD5\u0596\xD7\u059A\xD9\u05DC\xDB\u05DE\xDD\u05EE\xDF\u05F1\xE1\u064B\xE3\u064D\xE5\u0657\xE7\u065D\xE9\u0666\xEB\u0670\xED\u0679\xEF\u067F\xF1\u0688\xF3\u0690\xF5\u0699\xF7\u06A1\xF9\u06A9\xFB\u06B0\xFD\u06B8\xFF\u06BD\u0101\u06C2\u0103\u06C7\u0105\u06CE\u0107\u06DA\u0109\u06E3\u010B\u06EB\u010D\u06F2\u010F\u06F4\u0111\u0718\u0113\u071D\u0115\u0722\u0117\u0725\u0119\u0738\u011B\u073E\u011D\u074C\u011F\u0120\x07r\u0120\u0121\x07t\u0121\u0122\x07c\u0122\u0123\x07i\u0123\u0124\x07o\u0124\u0125\x07c\u0125\u0126\u0127\x07=\u0127\u0128\u0129\x07,\u0129\b\u012A\u012B\x07~\u012B\u012C\x07~\u012C\n\u012D\u012E\x07`\u012E\f\u012F\u0130\x07\x80\u0130\u0131\u0132\x07@\u0132\u0133\x07?\u0133\u0134\u0135\x07@\u0135\u0136\u0137\x07>\u0137\u0138\u0139\x07>\u0139\u013A\x07?\u013A\u013B\u013C\x07?\u013C\u013D\u013E\x07c\u013E\u013F\x07u\u013F\u0140\u0141\x07k\u0141\u0142\x07o\u0142\u0143\x07r\u0143\u0144\x07q\u0144\u0145\x07t\u0145\u0146\x07v\u0146\u0147\u0148\x07h\u0148\u0149\x07t\u0149\u014A\x07q\u014A\u014B\x07o\u014B\u014C\u014D\x07}\u014D \u014E\u014F\x07.\u014F\"\u0150\u0151\x07\x7F\u0151$\u0152\u0153\x07c\u0153\u0154\x07d\u0154\u0155\x07u\u0155\u0156\x07v\u0156\u0157\x07t\u0157\u0158\x07c\u0158\u0159\x07e\u0159\u015A\x07v\u015A&\u015B\u015C\x07e\u015C\u015D\x07q\u015D\u015E\x07p\u015E\u015F\x07v\u015F\u0160\x07t\u0160\u0161\x07c\u0161\u0162\x07e\u0162\u0163\x07v\u0163(\u0164\u0165\x07k\u0165\u0166\x07p\u0166\u0167\x07v\u0167\u0168\x07g\u0168\u0169\x07t\u0169\u016A\x07h\u016A\u016B\x07c\u016B\u016C\x07e\u016C\u016D\x07g\u016D*\u016E\u016F\x07n\u016F\u0170\x07k\u0170\u0171\x07d\u0171\u0172\x07t\u0172\u0173\x07c\u0173\u0174\x07t\u0174\u0175\x07{\u0175,\u0176\u0177\x07k\u0177\u0178\x07u\u0178.\u0179\u017A\x07*\u017A0\u017B\u017C\x07+\u017C2\u017D\u017E\x07g\u017E\u017F\x07t\u017F\u0180\x07t\u0180\u0181\x07q\u0181\u0182\x07t\u01824\u0183\u0184\x07w\u0184\u0185\x07u\u0185\u0186\x07k\u0186\u0187\x07p\u0187\u0188\x07i\u01886\u0189\u018A\x07h\u018A\u018B\x07q\u018B\u018C\x07t\u018C8\u018D\u018E\x07u\u018E\u018F\x07v\u018F\u0190\x07t\u0190\u0191\x07w\u0191\u0192\x07e\u0192\u0193\x07v\u0193:\u0194\u0195\x07o\u0195\u0196\x07q\u0196\u0197\x07f\u0197\u0198\x07k\u0198\u0199\x07h\u0199\u019A\x07k\u019A\u019B\x07g\u019B\u019C\x07t\u019C<\u019D\u019E\x07h\u019E\u019F\x07w\u019F\u01A0\x07p\u01A0\u01A1\x07e\u01A1\u01A2\x07v\u01A2\u01A3\x07k\u01A3\u01A4\x07q\u01A4\u01A5\x07p\u01A5>\u01A6\u01A7\x07t\u01A7\u01A8\x07g\u01A8\u01A9\x07v\u01A9\u01AA\x07w\u01AA\u01AB\x07t\u01AB\u01AC\x07p\u01AC\u01AD\x07u\u01AD@\u01AE\u01AF\x07g\u01AF\u01B0\x07x\u01B0\u01B1\x07g\u01B1\u01B2\x07p\u01B2\u01B3\x07v\u01B3B\u01B4\u01B5\x07g\u01B5\u01B6\x07p\u01B6\u01B7\x07w\u01B7\u01B8\x07o\u01B8D\u01B9\u01BA\x07]\u01BAF\u01BB\u01BC\x07_\u01BCH\u01BD\u01BE\x07c\u01BE\u01BF\x07f\u01BF\u01C0\x07f\u01C0\u01C1\x07t\u01C1\u01C2\x07g\u01C2\u01C3\x07u\u01C3\u01C4\x07u\u01C4J\u01C5\u01C6\x070\u01C6L\u01C7\u01C8\x07o\u01C8\u01C9\x07c\u01C9\u01CA\x07r\u01CA\u01CB\x07r\u01CB\u01CC\x07k\u01CC\u01CD\x07p\u01CD\u01CE\x07i\u01CEN\u01CF\u01D0\x07?\u01D0\u01D1\x07@\u01D1P\u01D2\u01D3\x07o\u01D3\u01D4\x07g\u01D4\u01D5\x07o\u01D5\u01D6\x07q\u01D6\u01D7\x07t\u01D7\u01D8\x07{\u01D8R\u01D9\u01DA\x07u\u01DA\u01DB\x07v\u01DB\u01DC\x07q\u01DC\u01DD\x07t\u01DD\u01DE\x07c\u01DE\u01DF\x07i\u01DF\u01E0\x07g\u01E0T\u01E1\u01E2\x07e\u01E2\u01E3\x07c\u01E3\u01E4\x07n\u01E4\u01E5\x07n\u01E5\u01E6\x07f\u01E6\u01E7\x07c\u01E7\u01E8\x07v\u01E8\u01E9\x07c\u01E9V\u01EA\u01EB\x07k\u01EB\u01EC\x07h\u01ECX\u01ED\u01EE\x07g\u01EE\u01EF\x07n\u01EF\u01F0\x07u\u01F0\u01F1\x07g\u01F1Z\u01F2\u01F3\x07v\u01F3\u01F4\x07t\u01F4\u01F5\x07{\u01F5\\\u01F6\u01F7\x07e\u01F7\u01F8\x07c\u01F8\u01F9\x07v\u01F9\u01FA\x07e\u01FA\u01FB\x07j\u01FB^\u01FC\u01FD\x07y\u01FD\u01FE\x07j\u01FE\u01FF\x07k\u01FF\u0200\x07n\u0200\u0201\x07g\u0201`\u0202\u0203\x07w\u0203\u0204\x07p\u0204\u0205\x07e\u0205\u0206\x07j\u0206\u0207\x07g\u0207\u0208\x07e\u0208\u0209\x07m\u0209\u020A\x07g\u020A\u020B\x07f\u020Bb\u020C\u020D\x07c\u020D\u020E\x07u\u020E\u020F\x07u\u020F\u0210\x07g\u0210\u0211\x07o\u0211\u0212\x07d\u0212\u0213\x07n\u0213\u0214\x07{\u0214d\u0215\u0216\x07f\u0216\u0217\x07q\u0217f\u0218\u0219\x07t\u0219\u021A\x07g\u021A\u021B\x07v\u021B\u021C\x07w\u021C\u021D\x07t\u021D\u021E\x07p\u021Eh\u021F\u0220\x07v\u0220\u0221\x07j\u0221\u0222\x07t\u0222\u0223\x07q\u0223\u0224\x07y\u0224j\u0225\u0226\x07g\u0226\u0227\x07o\u0227\u0228\x07k\u0228\u0229\x07v\u0229l\u022A\u022B\x07t\u022B\u022C\x07g\u022C\u022D\x07x\u022D\u022E\x07g\u022E\u022F\x07t\u022F\u0230\x07v\u0230n\u0231\u0232\x07x\u0232\u0233\x07c\u0233\u0234\x07t\u0234p\u0235\u0236\x07d\u0236\u0237\x07q\u0237\u0238\x07q\u0238\u0239\x07n\u0239r\u023A\u023B\x07u\u023B\u023C\x07v\u023C\u023D\x07t\u023D\u023E\x07k\u023E\u023F\x07p\u023F\u0240\x07i\u0240t\u0241\u0242\x07d\u0242\u0243\x07{\u0243\u0244\x07v\u0244\u0245\x07g\u0245v\u0246\u0247\x07-\u0247\u0248\x07-\u0248x\u0249\u024A\x07/\u024A\u024B\x07/\u024Bz\u024C\u024D\x07p\u024D\u024E\x07g\u024E\u024F\x07y\u024F|\u0250\u0251\x07<\u0251~\u0252\u0253\x07-\u0253\x80\u0254\u0255\x07/\u0255\x82\u0256\u0257\x07c\u0257\u0258\x07h\u0258\u0259\x07v\u0259\u025A\x07g\u025A\u025B\x07t\u025B\x84\u025C\u025D\x07f\u025D\u025E\x07g\u025E\u025F\x07n\u025F\u0260\x07g\u0260\u0261\x07v\u0261\u0262\x07g\u0262\x86\u0263\u0264\x07#\u0264\x88\u0265\u0266\x07,\u0266\u0267\x07,\u0267\x8A\u0268\u0269\x071\u0269\x8C\u026A\u026B\x07'\u026B\x8E\u026C\u026D\x07>\u026D\u026E\x07>\u026E\x90\u026F\u0270\x07@\u0270\u0271\x07@\u0271\x92\u0272\u0273\x07(\u0273\x94\u0274\u0275\x07~\u0275\x96\u0276\u0277\x07?\u0277\u0278\x07?\u0278\x98\u0279\u027A\x07#\u027A\u027B\x07?\u027B\x9A\u027C\u027D\x07(\u027D\u027E\x07(\u027E\x9C\u027F\u0280\x07A\u0280\x9E\u0281\u0282\x07~\u0282\u0283\x07?\u0283\xA0\u0284\u0285\x07`\u0285\u0286\x07?\u0286\xA2\u0287\u0288\x07(\u0288\u0289\x07?\u0289\xA4\u028A\u028B\x07>\u028B\u028C\x07>\u028C\u028D\x07?\u028D\xA6\u028E\u028F\x07@\u028F\u0290\x07@\u0290\u0291\x07?\u0291\xA8\u0292\u0293\x07-\u0293\u0294\x07?\u0294\xAA\u0295\u0296\x07/\u0296\u0297\x07?\u0297\xAC\u0298\u0299\x07,\u0299\u029A\x07?\u029A\xAE\u029B\u029C\x071\u029C\u029D\x07?\u029D\xB0\u029E\u029F\x07'\u029F\u02A0\x07?\u02A0\xB2\u02A1\u02A2\x07n\u02A2\u02A3\x07g\u02A3\u02A4\x07v\u02A4\xB4\u02A5\u02A6\x07<\u02A6\u02A7\x07?\u02A7\xB6\u02A8\u02A9\x07?\u02A9\u02AA\x07<\u02AA\xB8\u02AB\u02AC\x07u\u02AC\u02AD\x07y\u02AD\u02AE\x07k\u02AE\u02AF\x07v\u02AF\u02B0\x07e\u02B0\u02B1\x07j\u02B1\xBA\u02B2\u02B3\x07e\u02B3\u02B4\x07c\u02B4\u02B5\x07u\u02B5\u02B6\x07g\u02B6\xBC\u02B7\u02B8\x07f\u02B8\u02B9\x07g\u02B9\u02BA\x07h\u02BA\u02BB\x07c\u02BB\u02BC\x07w\u02BC\u02BD\x07n\u02BD\u02BE\x07v\u02BE\xBE\u02BF\u02C0\x07/\u02C0\u02C1\x07@\u02C1\xC0\u02C2\u02C3\x07e\u02C3\u02C4\x07c\u02C4\u02C5\x07n\u02C5\u02C6\x07n\u02C6\u02C7\x07d\u02C7\u02C8\x07c\u02C8\u02C9\x07e\u02C9\u02CA\x07m\u02CA\xC2\u02CB\u02CC\x07q\u02CC\u02CD\x07x\u02CD\u02CE\x07g\u02CE\u02CF\x07t\u02CF\u02D0\x07t\u02D0\u02D1\x07k\u02D1\u02D2\x07f\u02D2\u02D3\x07g\u02D3\xC4\u02D4\u02D5\x07k\u02D5\u02D6\x07p\u02D6\u038B\x07v\u02D7\u02D8\x07k\u02D8\u02D9\x07p\u02D9\u02DA\x07v\u02DA\u038B\x07:\u02DB\u02DC\x07k\u02DC\u02DD\x07p\u02DD\u02DE\x07v\u02DE\u02DF\x073\u02DF\u038B\x078\u02E0\u02E1\x07k\u02E1\u02E2\x07p\u02E2\u02E3\x07v\u02E3\u02E4\x074\u02E4\u038B\x076\u02E5\u02E6\x07k\u02E6\u02E7\x07p\u02E7\u02E8\x07v\u02E8\u02E9\x075\u02E9\u038B\x074\u02EA\u02EB\x07k\u02EB\u02EC\x07p\u02EC\u02ED\x07v\u02ED\u02EE\x076\u02EE\u038B\x072\u02EF\u02F0\x07k\u02F0\u02F1\x07p\u02F1\u02F2\x07v\u02F2\u02F3\x076\u02F3\u038B\x07:\u02F4\u02F5\x07k\u02F5\u02F6\x07p\u02F6\u02F7\x07v\u02F7\u02F8\x077\u02F8\u038B\x078\u02F9\u02FA\x07k\u02FA\u02FB\x07p\u02FB\u02FC\x07v\u02FC\u02FD\x078\u02FD\u038B\x076\u02FE\u02FF\x07k\u02FF\u0300\x07p\u0300\u0301\x07v\u0301\u0302\x079\u0302\u038B\x074\u0303\u0304\x07k\u0304\u0305\x07p\u0305\u0306\x07v\u0306\u0307\x07:\u0307\u038B\x072\u0308\u0309\x07k\u0309\u030A\x07p\u030A\u030B\x07v\u030B\u030C\x07:\u030C\u038B\x07:\u030D\u030E\x07k\u030E\u030F\x07p\u030F\u0310\x07v\u0310\u0311\x07;\u0311\u038B\x078\u0312\u0313\x07k\u0313\u0314\x07p\u0314\u0315\x07v\u0315\u0316\x073\u0316\u0317\x072\u0317\u038B\x076\u0318\u0319\x07k\u0319\u031A\x07p\u031A\u031B\x07v\u031B\u031C\x073\u031C\u031D\x073\u031D\u038B\x074\u031E\u031F\x07k\u031F\u0320\x07p\u0320\u0321\x07v\u0321\u0322\x073\u0322\u0323\x074\u0323\u038B\x072\u0324\u0325\x07k\u0325\u0326\x07p\u0326\u0327\x07v\u0327\u0328\x073\u0328\u0329\x074\u0329\u038B\x07:\u032A\u032B\x07k\u032B\u032C\x07p\u032C\u032D\x07v\u032D\u032E\x073\u032E\u032F\x075\u032F\u038B\x078\u0330\u0331\x07k\u0331\u0332\x07p\u0332\u0333\x07v\u0333\u0334\x073\u0334\u0335\x076\u0335\u038B\x076\u0336\u0337\x07k\u0337\u0338\x07p\u0338\u0339\x07v\u0339\u033A\x073\u033A\u033B\x077\u033B\u038B\x074\u033C\u033D\x07k\u033D\u033E\x07p\u033E\u033F\x07v\u033F\u0340\x073\u0340\u0341\x078\u0341\u038B\x072\u0342\u0343\x07k\u0343\u0344\x07p\u0344\u0345\x07v\u0345\u0346\x073\u0346\u0347\x078\u0347\u038B\x07:\u0348\u0349\x07k\u0349\u034A\x07p\u034A\u034B\x07v\u034B\u034C\x073\u034C\u034D\x079\u034D\u038B\x078\u034E\u034F\x07k\u034F\u0350\x07p\u0350\u0351\x07v\u0351\u0352\x073\u0352\u0353\x07:\u0353\u038B\x076\u0354\u0355\x07k\u0355\u0356\x07p\u0356\u0357\x07v\u0357\u0358\x073\u0358\u0359\x07;\u0359\u038B\x074\u035A\u035B\x07k\u035B\u035C\x07p\u035C\u035D\x07v\u035D\u035E\x074\u035E\u035F\x072\u035F\u038B\x072\u0360\u0361\x07k\u0361\u0362\x07p\u0362\u0363\x07v\u0363\u0364\x074\u0364\u0365\x072\u0365\u038B\x07:\u0366\u0367\x07k\u0367\u0368\x07p\u0368\u0369\x07v\u0369\u036A\x074\u036A\u036B\x073\u036B\u038B\x078\u036C\u036D\x07k\u036D\u036E\x07p\u036E\u036F\x07v\u036F\u0370\x074\u0370\u0371\x074\u0371\u038B\x076\u0372\u0373\x07k\u0373\u0374\x07p\u0374\u0375\x07v\u0375\u0376\x074\u0376\u0377\x075\u0377\u038B\x074\u0378\u0379\x07k\u0379\u037A\x07p\u037A\u037B\x07v\u037B\u037C\x074\u037C\u037D\x076\u037D\u038B\x072\u037E\u037F\x07k\u037F\u0380\x07p\u0380\u0381\x07v\u0381\u0382\x074\u0382\u0383\x076\u0383\u038B\x07:\u0384\u0385\x07k\u0385\u0386\x07p\u0386\u0387\x07v\u0387\u0388\x074\u0388\u0389\x077\u0389\u038B\x078\u038A\u02D4\u038A\u02D7\u038A\u02DB\u038A\u02E0\u038A\u02E5\u038A\u02EA\u038A\u02EF\u038A\u02F4\u038A\u02F9\u038A\u02FE\u038A\u0303\u038A\u0308\u038A\u030D\u038A\u0312\u038A\u0318\u038A\u031E\u038A\u0324\u038A\u032A\u038A\u0330\u038A\u0336\u038A\u033C\u038A\u0342\u038A\u0348\u038A\u034E\u038A\u0354\u038A\u035A\u038A\u0360\u038A\u0366\u038A\u036C\u038A\u0372\u038A\u0378\u038A\u037E\u038A\u0384\u038B\xC6\u038C\u038D\x07w\u038D\u038E\x07k\u038E\u038F\x07p\u038F\u0464\x07v\u0390\u0391\x07w\u0391\u0392\x07k\u0392\u0393\x07p\u0393\u0394\x07v\u0394\u0464\x07:\u0395\u0396\x07w\u0396\u0397\x07k\u0397\u0398\x07p\u0398\u0399\x07v\u0399\u039A\x073\u039A\u0464\x078\u039B\u039C"; - SolidityLexer._serializedATNSegment2 = "\x07w\u039C\u039D\x07k\u039D\u039E\x07p\u039E\u039F\x07v\u039F\u03A0\x074\u03A0\u0464\x076\u03A1\u03A2\x07w\u03A2\u03A3\x07k\u03A3\u03A4\x07p\u03A4\u03A5\x07v\u03A5\u03A6\x075\u03A6\u0464\x074\u03A7\u03A8\x07w\u03A8\u03A9\x07k\u03A9\u03AA\x07p\u03AA\u03AB\x07v\u03AB\u03AC\x076\u03AC\u0464\x072\u03AD\u03AE\x07w\u03AE\u03AF\x07k\u03AF\u03B0\x07p\u03B0\u03B1\x07v\u03B1\u03B2\x076\u03B2\u0464\x07:\u03B3\u03B4\x07w\u03B4\u03B5\x07k\u03B5\u03B6\x07p\u03B6\u03B7\x07v\u03B7\u03B8\x077\u03B8\u0464\x078\u03B9\u03BA\x07w\u03BA\u03BB\x07k\u03BB\u03BC\x07p\u03BC\u03BD\x07v\u03BD\u03BE\x078\u03BE\u0464\x076\u03BF\u03C0\x07w\u03C0\u03C1\x07k\u03C1\u03C2\x07p\u03C2\u03C3\x07v\u03C3\u03C4\x079\u03C4\u0464\x074\u03C5\u03C6\x07w\u03C6\u03C7\x07k\u03C7\u03C8\x07p\u03C8\u03C9\x07v\u03C9\u03CA\x07:\u03CA\u0464\x072\u03CB\u03CC\x07w\u03CC\u03CD\x07k\u03CD\u03CE\x07p\u03CE\u03CF\x07v\u03CF\u03D0\x07:\u03D0\u0464\x07:\u03D1\u03D2\x07w\u03D2\u03D3\x07k\u03D3\u03D4\x07p\u03D4\u03D5\x07v\u03D5\u03D6\x07;\u03D6\u0464\x078\u03D7\u03D8\x07w\u03D8\u03D9\x07k\u03D9\u03DA\x07p\u03DA\u03DB\x07v\u03DB\u03DC\x073\u03DC\u03DD\x072\u03DD\u0464\x076\u03DE\u03DF\x07w\u03DF\u03E0\x07k\u03E0\u03E1\x07p\u03E1\u03E2\x07v\u03E2\u03E3\x073\u03E3\u03E4\x073\u03E4\u0464\x074\u03E5\u03E6\x07w\u03E6\u03E7\x07k\u03E7\u03E8\x07p\u03E8\u03E9\x07v\u03E9\u03EA\x073\u03EA\u03EB\x074\u03EB\u0464\x072\u03EC\u03ED\x07w\u03ED\u03EE\x07k\u03EE\u03EF\x07p\u03EF\u03F0\x07v\u03F0\u03F1\x073\u03F1\u03F2\x074\u03F2\u0464\x07:\u03F3\u03F4\x07w\u03F4\u03F5\x07k\u03F5\u03F6\x07p\u03F6\u03F7\x07v\u03F7\u03F8\x073\u03F8\u03F9\x075\u03F9\u0464\x078\u03FA\u03FB\x07w\u03FB\u03FC\x07k\u03FC\u03FD\x07p\u03FD\u03FE\x07v\u03FE\u03FF\x073\u03FF\u0400\x076\u0400\u0464\x076\u0401\u0402\x07w\u0402\u0403\x07k\u0403\u0404\x07p\u0404\u0405\x07v\u0405\u0406\x073\u0406\u0407\x077\u0407\u0464\x074\u0408\u0409\x07w\u0409\u040A\x07k\u040A\u040B\x07p\u040B\u040C\x07v\u040C\u040D\x073\u040D\u040E\x078\u040E\u0464\x072\u040F\u0410\x07w\u0410\u0411\x07k\u0411\u0412\x07p\u0412\u0413\x07v\u0413\u0414\x073\u0414\u0415\x078\u0415\u0464\x07:\u0416\u0417\x07w\u0417\u0418\x07k\u0418\u0419\x07p\u0419\u041A\x07v\u041A\u041B\x073\u041B\u041C\x079\u041C\u0464\x078\u041D\u041E\x07w\u041E\u041F\x07k\u041F\u0420\x07p\u0420\u0421\x07v\u0421\u0422\x073\u0422\u0423\x07:\u0423\u0464\x076\u0424\u0425\x07w\u0425\u0426\x07k\u0426\u0427\x07p\u0427\u0428\x07v\u0428\u0429\x073\u0429\u042A\x07;\u042A\u0464\x074\u042B\u042C\x07w\u042C\u042D\x07k\u042D\u042E\x07p\u042E\u042F\x07v\u042F\u0430\x074\u0430\u0431\x072\u0431\u0464\x072\u0432\u0433\x07w\u0433\u0434\x07k\u0434\u0435\x07p\u0435\u0436\x07v\u0436\u0437\x074\u0437\u0438\x072\u0438\u0464\x07:\u0439\u043A\x07w\u043A\u043B\x07k\u043B\u043C\x07p\u043C\u043D\x07v\u043D\u043E\x074\u043E\u043F\x073\u043F\u0464\x078\u0440\u0441\x07w\u0441\u0442\x07k\u0442\u0443\x07p\u0443\u0444\x07v\u0444\u0445\x074\u0445\u0446\x074\u0446\u0464\x076\u0447\u0448\x07w\u0448\u0449\x07k\u0449\u044A\x07p\u044A\u044B\x07v\u044B\u044C\x074\u044C\u044D\x075\u044D\u0464\x074\u044E\u044F\x07w\u044F\u0450\x07k\u0450\u0451\x07p\u0451\u0452\x07v\u0452\u0453\x074\u0453\u0454\x076\u0454\u0464\x072\u0455\u0456\x07w\u0456\u0457\x07k\u0457\u0458\x07p\u0458\u0459\x07v\u0459\u045A\x074\u045A\u045B\x076\u045B\u0464\x07:\u045C\u045D\x07w\u045D\u045E\x07k\u045E\u045F\x07p\u045F\u0460\x07v\u0460\u0461\x074\u0461\u0462\x077\u0462\u0464\x078\u0463\u038C\u0463\u0390\u0463\u0395\u0463\u039B\u0463\u03A1\u0463\u03A7\u0463\u03AD\u0463\u03B3\u0463\u03B9\u0463\u03BF\u0463\u03C5\u0463\u03CB\u0463\u03D1\u0463\u03D7\u0463\u03DE\u0463\u03E5\u0463\u03EC\u0463\u03F3\u0463\u03FA\u0463\u0401\u0463\u0408\u0463\u040F\u0463\u0416\u0463\u041D\u0463\u0424\u0463\u042B\u0463\u0432\u0463\u0439\u0463\u0440\u0463\u0447\u0463\u044E\u0463\u0455\u0463\u045C\u0464\xC8\u0465\u0466\x07d\u0466\u0467\x07{\u0467\u0468\x07v\u0468\u0469\x07g\u0469\u0542\x07u\u046A\u046B\x07d\u046B\u046C\x07{\u046C\u046D\x07v\u046D\u046E\x07g\u046E\u046F\x07u\u046F\u0542\x073\u0470\u0471\x07d\u0471\u0472\x07{\u0472\u0473\x07v\u0473\u0474\x07g\u0474\u0475\x07u\u0475\u0542\x074\u0476\u0477\x07d\u0477\u0478\x07{\u0478\u0479\x07v\u0479\u047A\x07g\u047A\u047B\x07u\u047B\u0542\x075\u047C\u047D\x07d\u047D\u047E\x07{\u047E\u047F\x07v\u047F\u0480\x07g\u0480\u0481\x07u\u0481\u0542\x076\u0482\u0483\x07d\u0483\u0484\x07{\u0484\u0485\x07v\u0485\u0486\x07g\u0486\u0487\x07u\u0487\u0542\x077\u0488\u0489\x07d\u0489\u048A\x07{\u048A\u048B\x07v\u048B\u048C\x07g\u048C\u048D\x07u\u048D\u0542\x078\u048E\u048F\x07d\u048F\u0490\x07{\u0490\u0491\x07v\u0491\u0492\x07g\u0492\u0493\x07u\u0493\u0542\x079\u0494\u0495\x07d\u0495\u0496\x07{\u0496\u0497\x07v\u0497\u0498\x07g\u0498\u0499\x07u\u0499\u0542\x07:\u049A\u049B\x07d\u049B\u049C\x07{\u049C\u049D\x07v\u049D\u049E\x07g\u049E\u049F\x07u\u049F\u0542\x07;\u04A0\u04A1\x07d\u04A1\u04A2\x07{\u04A2\u04A3\x07v\u04A3\u04A4\x07g\u04A4\u04A5\x07u\u04A5\u04A6\x073\u04A6\u0542\x072\u04A7\u04A8\x07d\u04A8\u04A9\x07{\u04A9\u04AA\x07v\u04AA\u04AB\x07g\u04AB\u04AC\x07u\u04AC\u04AD\x073\u04AD\u0542\x073\u04AE\u04AF\x07d\u04AF\u04B0\x07{\u04B0\u04B1\x07v\u04B1\u04B2\x07g\u04B2\u04B3\x07u\u04B3\u04B4\x073\u04B4\u0542\x074\u04B5\u04B6\x07d\u04B6\u04B7\x07{\u04B7\u04B8\x07v\u04B8\u04B9\x07g\u04B9\u04BA\x07u\u04BA\u04BB\x073\u04BB\u0542\x075\u04BC\u04BD\x07d\u04BD\u04BE\x07{\u04BE\u04BF\x07v\u04BF\u04C0\x07g\u04C0\u04C1\x07u\u04C1\u04C2\x073\u04C2\u0542\x076\u04C3\u04C4\x07d\u04C4\u04C5\x07{\u04C5\u04C6\x07v\u04C6\u04C7\x07g\u04C7\u04C8\x07u\u04C8\u04C9\x073\u04C9\u0542\x077\u04CA\u04CB\x07d\u04CB\u04CC\x07{\u04CC\u04CD\x07v\u04CD\u04CE\x07g\u04CE\u04CF\x07u\u04CF\u04D0\x073\u04D0\u0542\x078\u04D1\u04D2\x07d\u04D2\u04D3\x07{\u04D3\u04D4\x07v\u04D4\u04D5\x07g\u04D5\u04D6\x07u\u04D6\u04D7\x073\u04D7\u0542\x079\u04D8\u04D9\x07d\u04D9\u04DA\x07{\u04DA\u04DB\x07v\u04DB\u04DC\x07g\u04DC\u04DD\x07u\u04DD\u04DE\x073\u04DE\u0542\x07:\u04DF\u04E0\x07d\u04E0\u04E1\x07{\u04E1\u04E2\x07v\u04E2\u04E3\x07g\u04E3\u04E4\x07u\u04E4\u04E5\x073\u04E5\u0542\x07;\u04E6\u04E7\x07d\u04E7\u04E8\x07{\u04E8\u04E9\x07v\u04E9\u04EA\x07g\u04EA\u04EB\x07u\u04EB\u04EC\x074\u04EC\u0542\x072\u04ED\u04EE\x07d\u04EE\u04EF\x07{\u04EF\u04F0\x07v\u04F0\u04F1\x07g\u04F1\u04F2\x07u\u04F2\u04F3\x074\u04F3\u0542\x073\u04F4\u04F5\x07d\u04F5\u04F6\x07{\u04F6\u04F7\x07v\u04F7\u04F8\x07g\u04F8\u04F9\x07u\u04F9\u04FA\x074\u04FA\u0542\x074\u04FB\u04FC\x07d\u04FC\u04FD\x07{\u04FD\u04FE\x07v\u04FE\u04FF\x07g\u04FF\u0500\x07u\u0500\u0501\x074\u0501\u0542\x075\u0502\u0503\x07d\u0503\u0504\x07{\u0504\u0505\x07v\u0505\u0506\x07g\u0506\u0507\x07u\u0507\u0508\x074\u0508\u0542\x076\u0509\u050A\x07d\u050A\u050B\x07{\u050B\u050C\x07v\u050C\u050D\x07g\u050D\u050E\x07u\u050E\u050F\x074\u050F\u0542\x077\u0510\u0511\x07d\u0511\u0512\x07{\u0512\u0513\x07v\u0513\u0514\x07g\u0514\u0515\x07u\u0515\u0516\x074\u0516\u0542\x078\u0517\u0518\x07d\u0518\u0519\x07{\u0519\u051A\x07v\u051A\u051B\x07g\u051B\u051C\x07u\u051C\u051D\x074\u051D\u0542\x079\u051E\u051F\x07d\u051F\u0520\x07{\u0520\u0521\x07v\u0521\u0522\x07g\u0522\u0523\x07u\u0523\u0524\x074\u0524\u0542\x07:\u0525\u0526\x07d\u0526\u0527\x07{\u0527\u0528\x07v\u0528\u0529\x07g\u0529\u052A\x07u\u052A\u052B\x074\u052B\u0542\x07;\u052C\u052D\x07d\u052D\u052E\x07{\u052E\u052F\x07v\u052F\u0530\x07g\u0530\u0531\x07u\u0531\u0532\x075\u0532\u0542\x072\u0533\u0534\x07d\u0534\u0535\x07{\u0535\u0536\x07v\u0536\u0537\x07g\u0537\u0538\x07u\u0538\u0539\x075\u0539\u0542\x073\u053A\u053B\x07d\u053B\u053C\x07{\u053C\u053D\x07v\u053D\u053E\x07g\u053E\u053F\x07u\u053F\u0540\x075\u0540\u0542\x074\u0541\u0465\u0541\u046A\u0541\u0470\u0541\u0476\u0541\u047C\u0541\u0482\u0541\u0488\u0541\u048E\u0541\u0494\u0541\u049A\u0541\u04A0\u0541\u04A7\u0541\u04AE\u0541\u04B5\u0541\u04BC\u0541\u04C3\u0541\u04CA\u0541\u04D1\u0541\u04D8\u0541\u04DF\u0541\u04E6\u0541\u04ED\u0541\u04F4\u0541\u04FB\u0541\u0502\u0541\u0509\u0541\u0510\u0541\u0517\u0541\u051E\u0541\u0525\u0541\u052C\u0541\u0533\u0541\u053A\u0542\xCA\u0543\u0544\x07h\u0544\u0545\x07k\u0545\u0546\x07z\u0546\u0547\x07g\u0547\u055A\x07f\u0548\u0549\x07h\u0549\u054A\x07k\u054A\u054B\x07z\u054B\u054C\x07g\u054C\u054D\x07f\u054D\u054F\u054E\u0550 \u054F\u054E\u0550\u0551\u0551\u054F\u0551\u0552\u0552\u0553\u0553\u0555\x07z\u0554\u0556 \u0555\u0554\u0556\u0557\u0557\u0555\u0557\u0558\u0558\u055A\u0559\u0543\u0559\u0548\u055A\xCC\u055B\u055C\x07w\u055C\u055D\x07h\u055D\u055E\x07k\u055E\u055F\x07z\u055F\u0560\x07g\u0560\u0574\x07f\u0561\u0562\x07w\u0562\u0563\x07h\u0563\u0564\x07k\u0564\u0565\x07z\u0565\u0566\x07g\u0566\u0567\x07f\u0567\u0569\u0568\u056A \u0569\u0568\u056A\u056B\u056B\u0569\u056B\u056C\u056C\u056D\u056D\u056F\x07z\u056E\u0570 \u056F\u056E\u0570\u0571\u0571\u056F\u0571\u0572\u0572\u0574\u0573\u055B\u0573\u0561\u0574\xCE\u0575\u0576\x07v\u0576\u0577\x07t\u0577\u0578\x07w\u0578\u057F\x07g\u0579\u057A\x07h\u057A\u057B\x07c\u057B\u057C\x07n\u057C\u057D\x07u\u057D\u057F\x07g\u057E\u0575\u057E\u0579\u057F\xD0\u0580\u0587\xD3j\u0581\u0583\xD3j\u0582\u0581\u0582\u0583\u0583\u0584\u0584\u0585\x070\u0585\u0587\xD3j\u0586\u0580\u0586\u0582\u0587\u058A\u0588\u0589 \u0589\u058B\xD3j\u058A\u0588\u058A\u058B\u058B\xD2\u058C\u0593 \u058D\u058F\x07a\u058E\u058D\u058E\u058F\u058F\u0590\u0590\u0592 \u0591\u058E\u0592\u0595\u0593\u0591\u0593\u0594\u0594\xD4\u0595\u0593\u0596\u0597\x072\u0597\u0598 \u0598\u0599\xD7l\u0599\xD6\u059A\u05A1\xDFp\u059B\u059D\x07a\u059C\u059B\u059C\u059D\u059D\u059E\u059E\u05A0\xDFp\u059F\u059C\u05A0\u05A3\u05A1\u059F\u05A1\u05A2\u05A2\xD8\u05A3\u05A1\u05A4\u05A5\x07y\u05A5\u05A6\x07g\u05A6\u05DD\x07k\u05A7\u05A8\x07i\u05A8\u05A9\x07y\u05A9\u05AA\x07g\u05AA\u05DD\x07k\u05AB\u05AC\x07u\u05AC\u05AD\x07|\u05AD\u05AE\x07c\u05AE\u05AF\x07d\u05AF\u05DD\x07q\u05B0\u05B1\x07h\u05B1\u05B2\x07k\u05B2\u05B3\x07p\u05B3\u05B4\x07p\u05B4\u05B5\x07g\u05B5\u05DD\x07{\u05B6\u05B7\x07g\u05B7\u05B8\x07v\u05B8\u05B9\x07j\u05B9\u05BA\x07g\u05BA\u05DD\x07t\u05BB\u05BC\x07u\u05BC\u05BD\x07g\u05BD\u05BE\x07e\u05BE\u05BF\x07q\u05BF\u05C0\x07p\u05C0\u05C1\x07f\u05C1\u05DD\x07u\u05C2\u05C3\x07o\u05C3\u05C4\x07k\u05C4\u05C5\x07p\u05C5\u05C6\x07w\u05C6\u05C7\x07v\u05C7\u05C8\x07g\u05C8\u05DD\x07u\u05C9\u05CA\x07j\u05CA\u05CB\x07q\u05CB\u05CC\x07w\u05CC\u05CD\x07t\u05CD\u05DD\x07u\u05CE\u05CF\x07f\u05CF\u05D0\x07c\u05D0\u05D1\x07{\u05D1\u05DD\x07u\u05D2\u05D3\x07y\u05D3\u05D4\x07g\u05D4\u05D5\x07g\u05D5\u05D6\x07m\u05D6\u05DD\x07u\u05D7\u05D8\x07{\u05D8\u05D9\x07g\u05D9\u05DA\x07c\u05DA\u05DB\x07t\u05DB\u05DD\x07u\u05DC\u05A4\u05DC\u05A7\u05DC\u05AB\u05DC\u05B0\u05DC\u05B6\u05DC\u05BB\u05DC\u05C2\u05DC\u05C9\u05DC\u05CE\u05DC\u05D2\u05DC\u05D7\u05DD\xDA\u05DE\u05DF\x07j\u05DF\u05E0\x07g\u05E0\u05E1\x07z\u05E1\u05EC\u05E2\u05E4\x07$\u05E3\u05E5\xD7l\u05E4\u05E3\u05E4\u05E5\u05E5\u05E6\u05E6\u05ED\x07$\u05E7\u05E9\x07)\u05E8\u05EA\xD7l\u05E9\u05E8\u05E9\u05EA\u05EA\u05EB\u05EB\u05ED\x07)\u05EC\u05E2\u05EC\u05E7\u05ED\xDC\u05EE\u05EF\xDFp\u05EF\u05F0\xDFp\u05F0\xDE\u05F1\u05F2 \u05F2\xE0\u05F3\u05F4\x07c\u05F4\u05F5\x07d\u05F5\u05F6\x07u\u05F6\u05F7\x07v\u05F7\u05F8\x07t\u05F8\u05F9\x07c\u05F9\u05FA\x07e\u05FA\u064C\x07v\u05FB\u05FC\x07c\u05FC\u05FD\x07h\u05FD\u05FE\x07v\u05FE\u05FF\x07g\u05FF\u064C\x07t\u0600\u0601\x07e\u0601\u0602\x07c\u0602\u0603\x07u\u0603\u064C\x07g\u0604\u0605\x07e\u0605\u0606\x07c\u0606\u0607\x07v\u0607\u0608\x07e\u0608\u064C\x07j\u0609\u060A\x07f\u060A\u060B\x07g\u060B\u060C\x07h\u060C\u060D\x07c\u060D\u060E\x07w\u060E\u060F\x07n\u060F\u064C\x07v\u0610\u0611\x07h\u0611\u0612\x07k\u0612\u0613\x07p\u0613\u0614\x07c\u0614\u064C\x07n\u0615\u0616\x07k\u0616\u064C\x07p\u0617\u0618\x07k\u0618\u0619\x07p\u0619\u061A\x07n\u061A\u061B\x07k\u061B\u061C\x07p\u061C\u064C\x07g\u061D\u061E\x07n\u061E\u061F\x07g\u061F\u064C\x07v\u0620\u0621\x07o\u0621\u0622\x07c\u0622\u0623\x07v\u0623\u0624\x07e\u0624\u064C\x07j\u0625\u0626\x07p\u0626\u0627\x07w\u0627\u0628\x07n\u0628\u064C\x07n\u0629\u062A\x07q\u062A\u064C\x07h\u062B\u062C\x07t\u062C\u062D\x07g\u062D\u062E\x07n\u062E\u062F\x07q\u062F\u0630\x07e\u0630\u0631\x07c\u0631\u0632\x07v\u0632\u0633\x07c\u0633\u0634\x07d\u0634\u0635\x07n\u0635\u064C\x07g\u0636\u0637\x07u\u0637\u0638\x07v\u0638\u0639\x07c\u0639\u063A\x07v\u063A\u063B\x07k\u063B\u064C\x07e\u063C\u063D\x07u\u063D\u063E\x07y\u063E\u063F\x07k\u063F\u0640\x07v\u0640\u0641\x07e\u0641\u064C\x07j\u0642\u0643\x07v\u0643\u0644\x07t\u0644\u064C\x07{\u0645\u0646\x07v\u0646\u0647\x07{\u0647\u0648\x07r\u0648\u0649\x07g\u0649\u064A\x07q\u064A\u064C\x07h\u064B\u05F3\u064B\u05FB\u064B\u0600\u064B\u0604\u064B\u0609\u064B\u0610\u064B\u0615\u064B\u0617\u064B\u061D\u064B\u0620\u064B\u0625\u064B\u0629\u064B\u062B\u064B\u0636\u064B\u063C\u064B\u0642\u064B\u0645\u064C\xE2\u064D\u064E\x07c\u064E\u064F\x07p\u064F\u0650\x07q\u0650\u0651\x07p\u0651\u0652\x07{\u0652\u0653\x07o\u0653\u0654\x07q\u0654\u0655\x07w\u0655\u0656\x07u\u0656\xE4\u0657\u0658\x07d\u0658\u0659\x07t\u0659\u065A\x07g\u065A\u065B\x07c\u065B\u065C\x07m\u065C\xE6\u065D\u065E\x07e\u065E\u065F\x07q\u065F\u0660\x07p\u0660\u0661\x07u\u0661\u0662\x07v\u0662\u0663\x07c\u0663\u0664\x07p\u0664\u0665\x07v\u0665\xE8\u0666\u0667\x07k\u0667\u0668\x07o\u0668\u0669\x07o\u0669\u066A\x07w\u066A\u066B\x07v\u066B\u066C\x07c\u066C\u066D\x07d\u066D\u066E\x07n\u066E\u066F\x07g\u066F\xEA\u0670\u0671\x07e\u0671\u0672\x07q"; - SolidityLexer._serializedATNSegment3 = "\u0672\u0673\x07p\u0673\u0674\x07v\u0674\u0675\x07k\u0675\u0676\x07p\u0676\u0677\x07w\u0677\u0678\x07g\u0678\xEC\u0679\u067A\x07n\u067A\u067B\x07g\u067B\u067C\x07c\u067C\u067D\x07x\u067D\u067E\x07g\u067E\xEE\u067F\u0680\x07g\u0680\u0681\x07z\u0681\u0682\x07v\u0682\u0683\x07g\u0683\u0684\x07t\u0684\u0685\x07p\u0685\u0686\x07c\u0686\u0687\x07n\u0687\xF0\u0688\u0689\x07k\u0689\u068A\x07p\u068A\u068B\x07f\u068B\u068C\x07g\u068C\u068D\x07z\u068D\u068E\x07g\u068E\u068F\x07f\u068F\xF2\u0690\u0691\x07k\u0691\u0692\x07p\u0692\u0693\x07v\u0693\u0694\x07g\u0694\u0695\x07t\u0695\u0696\x07p\u0696\u0697\x07c\u0697\u0698\x07n\u0698\xF4\u0699\u069A\x07r\u069A\u069B\x07c\u069B\u069C\x07{\u069C\u069D\x07c\u069D\u069E\x07d\u069E\u069F\x07n\u069F\u06A0\x07g\u06A0\xF6\u06A1\u06A2\x07r\u06A2\u06A3\x07t\u06A3\u06A4\x07k\u06A4\u06A5\x07x\u06A5\u06A6\x07c\u06A6\u06A7\x07v\u06A7\u06A8\x07g\u06A8\xF8\u06A9\u06AA\x07r\u06AA\u06AB\x07w\u06AB\u06AC\x07d\u06AC\u06AD\x07n\u06AD\u06AE\x07k\u06AE\u06AF\x07e\u06AF\xFA\u06B0\u06B1\x07x\u06B1\u06B2\x07k\u06B2\u06B3\x07t\u06B3\u06B4\x07v\u06B4\u06B5\x07w\u06B5\u06B6\x07c\u06B6\u06B7\x07n\u06B7\xFC\u06B8\u06B9\x07r\u06B9\u06BA\x07w\u06BA\u06BB\x07t\u06BB\u06BC\x07g\u06BC\xFE\u06BD\u06BE\x07v\u06BE\u06BF\x07{\u06BF\u06C0\x07r\u06C0\u06C1\x07g\u06C1\u0100\u06C2\u06C3\x07x\u06C3\u06C4\x07k\u06C4\u06C5\x07g\u06C5\u06C6\x07y\u06C6\u0102\u06C7\u06C8\x07i\u06C8\u06C9\x07n\u06C9\u06CA\x07q\u06CA\u06CB\x07d\u06CB\u06CC\x07c\u06CC\u06CD\x07n\u06CD\u0104\u06CE\u06CF\x07e\u06CF\u06D0\x07q\u06D0\u06D1\x07p\u06D1\u06D2\x07u\u06D2\u06D3\x07v\u06D3\u06D4\x07t\u06D4\u06D5\x07w\u06D5\u06D6\x07e\u06D6\u06D7\x07v\u06D7\u06D8\x07q\u06D8\u06D9\x07t\u06D9\u0106\u06DA\u06DB\x07h\u06DB\u06DC\x07c\u06DC\u06DD\x07n\u06DD\u06DE\x07n\u06DE\u06DF\x07d\u06DF\u06E0\x07c\u06E0\u06E1\x07e\u06E1\u06E2\x07m\u06E2\u0108\u06E3\u06E4\x07t\u06E4\u06E5\x07g\u06E5\u06E6\x07e\u06E6\u06E7\x07g\u06E7\u06E8\x07k\u06E8\u06E9\x07x\u06E9\u06EA\x07g\u06EA\u010A\u06EB\u06EF\u010D\x87\u06EC\u06EE\u010F\x88\u06ED\u06EC\u06EE\u06F1\u06EF\u06ED\u06EF\u06F0\u06F0\u010C\u06F1\u06EF\u06F2\u06F3 \u06F3\u010E\u06F4\u06F5 \x07\u06F5\u0110\u06F6\u06F7\x07w\u06F7\u06F8\x07p\u06F8\u06F9\x07k\u06F9\u06FA\x07e\u06FA\u06FB\x07q\u06FB\u06FC\x07f\u06FC\u06FE\x07g\u06FD\u06F6\u06FD\u06FE\u06FE\u06FF\u06FF\u0703\x07$\u0700\u0702\u0113\x8A\u0701\u0700\u0702\u0705\u0703\u0701\u0703\u0704\u0704\u0706\u0705\u0703\u0706\u0719\x07$\u0707\u0708\x07w\u0708\u0709\x07p\u0709\u070A\x07k\u070A\u070B\x07e\u070B\u070C\x07q\u070C\u070D\x07f\u070D\u070F\x07g\u070E\u0707\u070E\u070F\u070F\u0710\u0710\u0714\x07)\u0711\u0713\u0115\x8B\u0712\u0711\u0713\u0716\u0714\u0712\u0714\u0715\u0715\u0717\u0716\u0714\u0717\u0719\x07)\u0718\u06FD\u0718\u070E\u0719\u0112\u071A\u071E\n\b\u071B\u071C\x07^\u071C\u071E\v\u071D\u071A\u071D\u071B\u071E\u0114\u071F\u0723\n \u0720\u0721\x07^\u0721\u0723\v\u0722\u071F\u0722\u0720\u0723\u0116\u0724\u0726 \u0725\u0724\u0726\u0727\u0727\u0725\u0727\u0728\u0728\u0729\u0729\u072B\x070\u072A\u072C \u072B\u072A\u072C\u072D\u072D\u072B\u072D\u072E\u072E\u0735\u072F\u0731\x070\u0730\u0732 \u0731\u0730\u0732\u0733\u0733\u0731\u0733\u0734\u0734\u0736\u0735\u072F\u0735\u0736\u0736\u0118\u0737\u0739 \n\u0738\u0737\u0739\u073A\u073A\u0738\u073A\u073B\u073B\u073C\u073C\u073D\b\x8D\u073D\u011A\u073E\u073F\x071\u073F\u0740\x07,\u0740\u0744\u0741\u0743\v\u0742\u0741\u0743\u0746\u0744\u0745\u0744\u0742\u0745\u0747\u0746\u0744\u0747\u0748\x07,\u0748\u0749\x071\u0749\u074A\u074A\u074B\b\x8E\u074B\u011C\u074C\u074D\x071\u074D\u074E\x071\u074E\u0752\u074F\u0751\n\v\u0750\u074F\u0751\u0754\u0752\u0750\u0752\u0753\u0753\u0755\u0754\u0752\u0755\u0756\b\x8F\u0756\u011E(\u038A\u0463\u0541\u0551\u0557\u0559\u056B\u0571\u0573\u057E\u0582\u0586\u058A\u058E\u0593\u059C\u05A1\u05DC\u05E4\u05E9\u05EC\u064B\u06EF\u06FD\u0703\u070E\u0714\u0718\u071D\u0722\u0727\u072D\u0733\u0735\u073A\u0744\u0752\b"; + SolidityLexer._serializedATNSegment0 = "\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x87\u0752\b     \x07 \x07\b \b \n \n\v \v\f \f\r \r                   ! !\" \"# #$ $% %& &' '( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _` `a ab bc cd de ef fg gh hi ij jk kl lm mn no op pq qr rs st tu uv vw wx xy yz z{ {| |} }~ ~\x7F \x7F\x80 \x80\x81 \x81\x82 \x82\x83 \x83\x84 \x84\x85 \x85\x86 \x86\x87 \x87\x88 \x88\x89 \x89\x8A \x8A\x8B \x8B\x8C \x8C\x8D \x8D\x8E \x8E\x07\x07\b\b\b  \n\n\v\v\v\f\f\r\r\r  !!\"\"###$$$%%%%%%%&&&&&&&&&'''''''''(((((((())))))*****++,,--------..////////0001111111222222223333333334445555566667777778888889999999999:::::::::;;;<<<<<<<======>>>>>???????@@@@AAAAABBBBBBBCCCCCDDDEEEFFFFGGHHHHHHHIIJJJKKKLLLMMMNNOOOPPPQQQRRRRSSSSTTTUUUVVVWWWXXXYYYYZZZ[[[\\\\\\\\\\\\\\]]]]]^^^^^^^^___`````````aaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\u0383\nbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\u045C\ncddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\u053A\ndeeeeeeeeeeeee\u0548\ne\ree\u0549eee\u054E\ne\ree\u054Fe\u0552\nefffffffffffffff\u0562\nf\rff\u0563fff\u0568\nf\rff\u0569f\u056C\nfgggggggggg\u0577\nghhh\u057B\nhhhh\u057F\nhhhh\u0583\nhhh\u0586\nhiii\u058A\nii\x07i\u058D\ni\fii\u0590\vijjjjkkk\u0598\nkk\x07k\u059B\nk\fkk\u059E\vklllllllllllllllllllllllllllllllllllllllllllllllllllllllll\u05D8\nlmmmmmmm\u05E0\nmmmmm\u05E5\nmmm\u05E8\nmnnnooppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp\u0647\npqqqqqqqqqqrrrrrrsssssssssttttttttttuuuuuuuuuvvvvvvwwwwwwwwwxxxxxxxxyyyyyyyyyzzzzzzzz{{{{{{{{|||||||}}}}}}}}~~~~~\x7F\x7F\x7F\x7F\x7F\x80\x80\x80\x80\x80\x81\x81\x81\x81\x81\x81\x81\x82\x82\x82\x82\x82\x82\x82\x82\x82\x82\x82\x82\x83\x83\x83\x83\x83\x83\x83\x83\x83\x84\x84\x84\x84\x84\x84\x84\x84\x85\x85\x07\x85\u06E9\n\x85\f\x85\x85\u06EC\v\x85\x86\x86\x87\x87\x88\x88\x88\x88\x88\x88\x88\x88\u06F9\n\x88\x88\x88\x07\x88\u06FD\n\x88\f\x88\x88\u0700\v\x88\x88\x88\x88\x88\x88\x88\x88\x88\x88\u070A\n\x88\x88\x88\x07\x88\u070E\n\x88\f\x88\x88\u0711\v\x88\x88\x88\u0714\n\x88\x89\x89\x89\x89\u0719\n\x89\x8A\x8A\x8A\x8A\u071E\n\x8A\x8B\x8B\u0721\n\x8B\r\x8B\x8B\u0722\x8B\x8B\x8B\u0727\n\x8B\r\x8B\x8B\u0728\x8B\x8B\x8B\u072D\n\x8B\r\x8B\x8B\u072E\x8B\u0731\n\x8B\x8C\x8C\u0734\n\x8C\r\x8C\x8C\u0735\x8C\x8C\x8D\x8D\x8D\x8D\x07\x8D\u073E\n\x8D\f\x8D\x8D\u0741\v\x8D\x8D\x8D\x8D\x8D\x8D\x8E\x8E\x8E\x8E\x07\x8E\u074C\n\x8E\f\x8E\x8E\u074F\v\x8E\x8E\x8E\u073F\x8F\x07 \v\x07\r\b \n\v\f\r!#%')+-/13579;= ?!A\"C#E$G%I&K'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\x7FA\x81B\x83C\x85D\x87E\x89F\x8BG\x8DH\x8FI\x91J\x93K\x95L\x97M\x99N\x9BO\x9DP\x9FQ\xA1R\xA3S\xA5T\xA7U\xA9V\xABW\xADX\xAFY\xB1Z\xB3[\xB5\\\xB7]\xB9^\xBB_\xBD`\xBFa\xC1b\xC3c\xC5d\xC7e\xC9f\xCBg\xCDh\xCFi\xD1\xD3j\xD5\xD7k\xD9l\xDB\xDD\xDFm\xE1n\xE3o\xE5p\xE7q\xE9r\xEBs\xEDt\xEFu\xF1v\xF3w\xF5x\xF7y\xF9z\xFB{\xFD|\xFF}\u0101~\u0103\x7F\u0105\x80\u0107\x81\u0109\x82\u010B\u010D\u010F\x83\u0111\u0113\u0115\x84\u0117\x85\u0119\x86\u011B\x87\f2;GGggZZzz2;CHch&&C\\aac|\x07&&2;C\\aac|\f\f$$^^\f\f))^^\v\f\"\"\f\f\u07E4\x07 \v\r!#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}\x7F\x81\x83\x85\x87\x89\x8B\x8D\x8F\x91\x93\x95\x97\x99\x9B\x9D\x9F\xA1\xA3\xA5\xA7\xA9\xAB\xAD\xAF\xB1\xB3\xB5\xB7\xB9\xBB\xBD\xBF\xC1\xC3\xC5\xC7\xC9\xCB\xCD\xCF\xD3\xD7\xD9\xDF\xE1\xE3\xE5\xE7\xE9\xEB"; + SolidityLexer._serializedATNSegment1 = "\xED\xEF\xF1\xF3\xF5\xF7\xF9\xFB\xFD\xFF\u0101\u0103\u0105\u0107\u0109\u010F\u0115\u0117\u0119\u011B\u011D\u0124\x07\u0126 \u0128\v\u012B\r\u012D\u012F\u0132\u0134\u0136\u0139\u013B\u013E\u0145\u014A!\u014C#\u014E%\u0150'\u0159)\u0162+\u016C-\u0174/\u01771\u01793\u017B5\u01817\u01879\u018B;\u018D=\u018F?\u0191A\u0193C\u0195E\u0197G\u019AI\u019DK\u01A4M\u01ADO\u01B6Q\u01BES\u01C4U\u01C9W\u01CBY\u01CD[\u01D5]\u01D7_\u01DFa\u01E2c\u01E9e\u01F1g\u01FAi\u01FDk\u0202m\u0206o\u020Cq\u0212s\u021Cu\u0225w\u0228y\u022F{\u0235}\u023A\x7F\u0241\x81\u0245\x83\u024A\x85\u0251\x87\u0256\x89\u0259\x8B\u025C\x8D\u0260\x8F\u0262\x91\u0269\x93\u026B\x95\u026E\x97\u0271\x99\u0274\x9B\u0277\x9D\u0279\x9F\u027C\xA1\u027F\xA3\u0282\xA5\u0286\xA7\u028A\xA9\u028D\xAB\u0290\xAD\u0293\xAF\u0296\xB1\u0299\xB3\u029D\xB5\u02A0\xB7\u02A3\xB9\u02AA\xBB\u02AF\xBD\u02B7\xBF\u02BA\xC1\u02C3\xC3\u0382\xC5\u045B\xC7\u0539\xC9\u0551\xCB\u056B\xCD\u0576\xCF\u057E\xD1\u0587\xD3\u0591\xD5\u0595\xD7\u05D7\xD9\u05D9\xDB\u05E9\xDD\u05EC\xDF\u0646\xE1\u0648\xE3\u0652\xE5\u0658\xE7\u0661\xE9\u066B\xEB\u0674\xED\u067A\xEF\u0683\xF1\u068B\xF3\u0694\xF5\u069C\xF7\u06A4\xF9\u06AB\xFB\u06B3\xFD\u06B8\xFF\u06BD\u0101\u06C2\u0103\u06C9\u0105\u06D5\u0107\u06DE\u0109\u06E6\u010B\u06ED\u010D\u06EF\u010F\u0713\u0111\u0718\u0113\u071D\u0115\u0720\u0117\u0733\u0119\u0739\u011B\u0747\u011D\u011E\x07r\u011E\u011F\x07t\u011F\u0120\x07c\u0120\u0121\x07i\u0121\u0122\x07o\u0122\u0123\x07c\u0123\u0124\u0125\x07=\u0125\u0126\u0127\x07,\u0127\b\u0128\u0129\x07~\u0129\u012A\x07~\u012A\n\u012B\u012C\x07`\u012C\f\u012D\u012E\x07\x80\u012E\u012F\u0130\x07@\u0130\u0131\x07?\u0131\u0132\u0133\x07@\u0133\u0134\u0135\x07>\u0135\u0136\u0137\x07>\u0137\u0138\x07?\u0138\u0139\u013A\x07?\u013A\u013B\u013C\x07c\u013C\u013D\x07u\u013D\u013E\u013F\x07k\u013F\u0140\x07o\u0140\u0141\x07r\u0141\u0142\x07q\u0142\u0143\x07t\u0143\u0144\x07v\u0144\u0145\u0146\x07h\u0146\u0147\x07t\u0147\u0148\x07q\u0148\u0149\x07o\u0149\u014A\u014B\x07}\u014B \u014C\u014D\x07.\u014D\"\u014E\u014F\x07\x7F\u014F$\u0150\u0151\x07c\u0151\u0152\x07d\u0152\u0153\x07u\u0153\u0154\x07v\u0154\u0155\x07t\u0155\u0156\x07c\u0156\u0157\x07e\u0157\u0158\x07v\u0158&\u0159\u015A\x07e\u015A\u015B\x07q\u015B\u015C\x07p\u015C\u015D\x07v\u015D\u015E\x07t\u015E\u015F\x07c\u015F\u0160\x07e\u0160\u0161\x07v\u0161(\u0162\u0163\x07k\u0163\u0164\x07p\u0164\u0165\x07v\u0165\u0166\x07g\u0166\u0167\x07t\u0167\u0168\x07h\u0168\u0169\x07c\u0169\u016A\x07e\u016A\u016B\x07g\u016B*\u016C\u016D\x07n\u016D\u016E\x07k\u016E\u016F\x07d\u016F\u0170\x07t\u0170\u0171\x07c\u0171\u0172\x07t\u0172\u0173\x07{\u0173,\u0174\u0175\x07k\u0175\u0176\x07u\u0176.\u0177\u0178\x07*\u01780\u0179\u017A\x07+\u017A2\u017B\u017C\x07g\u017C\u017D\x07t\u017D\u017E\x07t\u017E\u017F\x07q\u017F\u0180\x07t\u01804\u0181\u0182\x07w\u0182\u0183\x07u\u0183\u0184\x07k\u0184\u0185\x07p\u0185\u0186\x07i\u01866\u0187\u0188\x07h\u0188\u0189\x07q\u0189\u018A\x07t\u018A8\u018B\u018C\x07~\u018C:\u018D\u018E\x07(\u018E<\u018F\u0190\x07-\u0190>\u0191\u0192\x07/\u0192@\u0193\u0194\x071\u0194B\u0195\u0196\x07'\u0196D\u0197\u0198\x07?\u0198\u0199\x07?\u0199F\u019A\u019B\x07#\u019B\u019C\x07?\u019CH\u019D\u019E\x07u\u019E\u019F\x07v\u019F\u01A0\x07t\u01A0\u01A1\x07w\u01A1\u01A2\x07e\u01A2\u01A3\x07v\u01A3J\u01A4\u01A5\x07o\u01A5\u01A6\x07q\u01A6\u01A7\x07f\u01A7\u01A8\x07k\u01A8\u01A9\x07h\u01A9\u01AA\x07k\u01AA\u01AB\x07g\u01AB\u01AC\x07t\u01ACL\u01AD\u01AE\x07h\u01AE\u01AF\x07w\u01AF\u01B0\x07p\u01B0\u01B1\x07e\u01B1\u01B2\x07v\u01B2\u01B3\x07k\u01B3\u01B4\x07q\u01B4\u01B5\x07p\u01B5N\u01B6\u01B7\x07t\u01B7\u01B8\x07g\u01B8\u01B9\x07v\u01B9\u01BA\x07w\u01BA\u01BB\x07t\u01BB\u01BC\x07p\u01BC\u01BD\x07u\u01BDP\u01BE\u01BF\x07g\u01BF\u01C0\x07x\u01C0\u01C1\x07g\u01C1\u01C2\x07p\u01C2\u01C3\x07v\u01C3R\u01C4\u01C5\x07g\u01C5\u01C6\x07p\u01C6\u01C7\x07w\u01C7\u01C8\x07o\u01C8T\u01C9\u01CA\x07]\u01CAV\u01CB\u01CC\x07_\u01CCX\u01CD\u01CE\x07c\u01CE\u01CF\x07f\u01CF\u01D0\x07f\u01D0\u01D1\x07t\u01D1\u01D2\x07g\u01D2\u01D3\x07u\u01D3\u01D4\x07u\u01D4Z\u01D5\u01D6\x070\u01D6\\\u01D7\u01D8\x07o\u01D8\u01D9\x07c\u01D9\u01DA\x07r\u01DA\u01DB\x07r\u01DB\u01DC\x07k\u01DC\u01DD\x07p\u01DD\u01DE\x07i\u01DE^\u01DF\u01E0\x07?\u01E0\u01E1\x07@\u01E1`\u01E2\u01E3\x07o\u01E3\u01E4\x07g\u01E4\u01E5\x07o\u01E5\u01E6\x07q\u01E6\u01E7\x07t\u01E7\u01E8\x07{\u01E8b\u01E9\u01EA\x07u\u01EA\u01EB\x07v\u01EB\u01EC\x07q\u01EC\u01ED\x07t\u01ED\u01EE\x07c\u01EE\u01EF\x07i\u01EF\u01F0\x07g\u01F0d\u01F1\u01F2\x07e\u01F2\u01F3\x07c\u01F3\u01F4\x07n\u01F4\u01F5\x07n\u01F5\u01F6\x07f\u01F6\u01F7\x07c\u01F7\u01F8\x07v\u01F8\u01F9\x07c\u01F9f\u01FA\u01FB\x07k\u01FB\u01FC\x07h\u01FCh\u01FD\u01FE\x07g\u01FE\u01FF\x07n\u01FF\u0200\x07u\u0200\u0201\x07g\u0201j\u0202\u0203\x07v\u0203\u0204\x07t\u0204\u0205\x07{\u0205l\u0206\u0207\x07e\u0207\u0208\x07c\u0208\u0209\x07v\u0209\u020A\x07e\u020A\u020B\x07j\u020Bn\u020C\u020D\x07y\u020D\u020E\x07j\u020E\u020F\x07k\u020F\u0210\x07n\u0210\u0211\x07g\u0211p\u0212\u0213\x07w\u0213\u0214\x07p\u0214\u0215\x07e\u0215\u0216\x07j\u0216\u0217\x07g\u0217\u0218\x07e\u0218\u0219\x07m\u0219\u021A\x07g\u021A\u021B\x07f\u021Br\u021C\u021D\x07c\u021D\u021E\x07u\u021E\u021F\x07u\u021F\u0220\x07g\u0220\u0221\x07o\u0221\u0222\x07d\u0222\u0223\x07n\u0223\u0224\x07{\u0224t\u0225\u0226\x07f\u0226\u0227\x07q\u0227v\u0228\u0229\x07t\u0229\u022A\x07g\u022A\u022B\x07v\u022B\u022C\x07w\u022C\u022D\x07t\u022D\u022E\x07p\u022Ex\u022F\u0230\x07v\u0230\u0231\x07j\u0231\u0232\x07t\u0232\u0233\x07q\u0233\u0234\x07y\u0234z\u0235\u0236\x07g\u0236\u0237\x07o\u0237\u0238\x07k\u0238\u0239\x07v\u0239|\u023A\u023B\x07t\u023B\u023C\x07g\u023C\u023D\x07x\u023D\u023E\x07g\u023E\u023F\x07t\u023F\u0240\x07v\u0240~\u0241\u0242\x07x\u0242\u0243\x07c\u0243\u0244\x07t\u0244\x80\u0245\u0246\x07d\u0246\u0247\x07q\u0247\u0248\x07q\u0248\u0249\x07n\u0249\x82\u024A\u024B\x07u\u024B\u024C\x07v\u024C\u024D\x07t\u024D\u024E\x07k\u024E\u024F\x07p\u024F\u0250\x07i\u0250\x84\u0251\u0252\x07d\u0252\u0253\x07{\u0253\u0254\x07v\u0254\u0255\x07g\u0255\x86\u0256\u0257\x07-\u0257\u0258\x07-\u0258\x88\u0259\u025A\x07/\u025A\u025B\x07/\u025B\x8A\u025C\u025D\x07p\u025D\u025E\x07g\u025E\u025F\x07y\u025F\x8C\u0260\u0261\x07<\u0261\x8E\u0262\u0263\x07f\u0263\u0264\x07g\u0264\u0265\x07n\u0265\u0266\x07g\u0266\u0267\x07v\u0267\u0268\x07g\u0268\x90\u0269\u026A\x07#\u026A\x92\u026B\u026C\x07,\u026C\u026D\x07,\u026D\x94\u026E\u026F\x07>\u026F\u0270\x07>\u0270\x96\u0271\u0272\x07@\u0272\u0273\x07@\u0273\x98\u0274\u0275\x07(\u0275\u0276\x07(\u0276\x9A\u0277\u0278\x07A\u0278\x9C\u0279\u027A\x07~\u027A\u027B\x07?\u027B\x9E\u027C\u027D\x07`\u027D\u027E\x07?\u027E\xA0\u027F\u0280\x07(\u0280\u0281\x07?\u0281\xA2\u0282\u0283\x07>\u0283\u0284\x07>\u0284\u0285\x07?\u0285\xA4\u0286\u0287\x07@\u0287\u0288\x07@\u0288\u0289\x07?\u0289\xA6\u028A\u028B\x07-\u028B\u028C\x07?\u028C\xA8\u028D\u028E\x07/\u028E\u028F\x07?\u028F\xAA\u0290\u0291\x07,\u0291\u0292\x07?\u0292\xAC\u0293\u0294\x071\u0294\u0295\x07?\u0295\xAE\u0296\u0297\x07'\u0297\u0298\x07?\u0298\xB0\u0299\u029A\x07n\u029A\u029B\x07g\u029B\u029C\x07v\u029C\xB2\u029D\u029E\x07<\u029E\u029F\x07?\u029F\xB4\u02A0\u02A1\x07?\u02A1\u02A2\x07<\u02A2\xB6\u02A3\u02A4\x07u\u02A4\u02A5\x07y\u02A5\u02A6\x07k\u02A6\u02A7\x07v\u02A7\u02A8\x07e\u02A8\u02A9\x07j\u02A9\xB8\u02AA\u02AB\x07e\u02AB\u02AC\x07c\u02AC\u02AD\x07u\u02AD\u02AE\x07g\u02AE\xBA\u02AF\u02B0\x07f\u02B0\u02B1\x07g\u02B1\u02B2\x07h\u02B2\u02B3\x07c\u02B3\u02B4\x07w\u02B4\u02B5\x07n\u02B5\u02B6\x07v\u02B6\xBC\u02B7\u02B8\x07/\u02B8\u02B9\x07@\u02B9\xBE\u02BA\u02BB\x07e\u02BB\u02BC\x07c\u02BC\u02BD\x07n\u02BD\u02BE\x07n\u02BE\u02BF\x07d\u02BF\u02C0\x07c\u02C0\u02C1\x07e\u02C1\u02C2\x07m\u02C2\xC0\u02C3\u02C4\x07q\u02C4\u02C5\x07x\u02C5\u02C6\x07g\u02C6\u02C7\x07t\u02C7\u02C8\x07t\u02C8\u02C9\x07k\u02C9\u02CA\x07f\u02CA\u02CB\x07g\u02CB\xC2\u02CC\u02CD\x07k\u02CD\u02CE\x07p\u02CE\u0383\x07v\u02CF\u02D0\x07k\u02D0\u02D1\x07p\u02D1\u02D2\x07v\u02D2\u0383\x07:\u02D3\u02D4\x07k\u02D4\u02D5\x07p\u02D5\u02D6\x07v\u02D6\u02D7\x073\u02D7\u0383\x078\u02D8\u02D9\x07k\u02D9\u02DA\x07p\u02DA\u02DB\x07v\u02DB\u02DC\x074\u02DC\u0383\x076\u02DD\u02DE\x07k\u02DE\u02DF\x07p\u02DF\u02E0\x07v\u02E0\u02E1\x075\u02E1\u0383\x074\u02E2\u02E3\x07k\u02E3\u02E4\x07p\u02E4\u02E5\x07v\u02E5\u02E6\x076\u02E6\u0383\x072\u02E7\u02E8\x07k\u02E8\u02E9\x07p\u02E9\u02EA\x07v\u02EA\u02EB\x076\u02EB\u0383\x07:\u02EC\u02ED\x07k\u02ED\u02EE\x07p\u02EE\u02EF\x07v\u02EF\u02F0\x077\u02F0\u0383\x078\u02F1\u02F2\x07k\u02F2\u02F3\x07p\u02F3\u02F4\x07v\u02F4\u02F5\x078\u02F5\u0383\x076\u02F6\u02F7\x07k\u02F7\u02F8\x07p\u02F8\u02F9\x07v\u02F9\u02FA\x079\u02FA\u0383\x074\u02FB\u02FC\x07k\u02FC\u02FD\x07p\u02FD\u02FE\x07v\u02FE\u02FF\x07:\u02FF\u0383\x072\u0300\u0301\x07k\u0301\u0302\x07p\u0302\u0303\x07v\u0303\u0304\x07:\u0304\u0383\x07:\u0305\u0306\x07k\u0306\u0307\x07p\u0307\u0308\x07v\u0308\u0309\x07;\u0309\u0383\x078\u030A\u030B\x07k\u030B\u030C\x07p\u030C\u030D\x07v\u030D\u030E\x073\u030E\u030F\x072\u030F\u0383\x076\u0310\u0311\x07k\u0311\u0312\x07p\u0312\u0313\x07v\u0313\u0314\x073\u0314\u0315\x073\u0315\u0383\x074\u0316\u0317\x07k\u0317\u0318\x07p\u0318\u0319\x07v\u0319\u031A\x073\u031A\u031B\x074\u031B\u0383\x072\u031C\u031D\x07k\u031D\u031E\x07p\u031E\u031F\x07v\u031F\u0320\x073\u0320\u0321\x074\u0321\u0383\x07:\u0322\u0323\x07k\u0323\u0324\x07p\u0324\u0325\x07v\u0325\u0326\x073\u0326\u0327\x075\u0327\u0383\x078\u0328\u0329\x07k\u0329\u032A\x07p\u032A\u032B\x07v\u032B\u032C\x073\u032C\u032D\x076\u032D\u0383\x076\u032E\u032F\x07k\u032F\u0330\x07p\u0330\u0331\x07v\u0331\u0332\x073\u0332\u0333\x077\u0333\u0383\x074\u0334\u0335\x07k\u0335\u0336\x07p\u0336\u0337\x07v\u0337\u0338\x073\u0338\u0339\x078\u0339\u0383\x072\u033A\u033B\x07k\u033B\u033C\x07p\u033C\u033D\x07v\u033D\u033E\x073\u033E\u033F\x078\u033F\u0383\x07:\u0340\u0341\x07k\u0341\u0342\x07p\u0342\u0343\x07v\u0343\u0344\x073\u0344\u0345\x079\u0345\u0383\x078\u0346\u0347\x07k\u0347\u0348\x07p\u0348\u0349\x07v\u0349\u034A\x073\u034A\u034B\x07:\u034B\u0383\x076\u034C\u034D\x07k\u034D\u034E\x07p\u034E\u034F\x07v\u034F\u0350\x073\u0350\u0351\x07;\u0351\u0383\x074\u0352\u0353\x07k\u0353\u0354\x07p\u0354\u0355\x07v\u0355\u0356\x074\u0356\u0357\x072\u0357\u0383\x072\u0358\u0359\x07k\u0359\u035A\x07p\u035A\u035B\x07v\u035B\u035C\x074\u035C\u035D\x072\u035D\u0383\x07:\u035E\u035F\x07k\u035F\u0360\x07p\u0360\u0361\x07v\u0361\u0362\x074\u0362\u0363\x073\u0363\u0383\x078\u0364\u0365\x07k\u0365\u0366\x07p\u0366\u0367\x07v\u0367\u0368\x074\u0368\u0369\x074\u0369\u0383\x076\u036A\u036B\x07k\u036B\u036C\x07p\u036C\u036D\x07v\u036D\u036E\x074\u036E\u036F\x075\u036F\u0383\x074\u0370\u0371\x07k\u0371\u0372\x07p\u0372\u0373\x07v\u0373\u0374\x074\u0374\u0375\x076\u0375\u0383\x072\u0376\u0377\x07k\u0377\u0378\x07p\u0378\u0379\x07v\u0379\u037A\x074\u037A\u037B\x076\u037B\u0383\x07:\u037C\u037D\x07k\u037D\u037E\x07p\u037E\u037F\x07v\u037F\u0380\x074\u0380\u0381\x077\u0381\u0383\x078\u0382\u02CC\u0382\u02CF\u0382\u02D3\u0382\u02D8\u0382\u02DD\u0382\u02E2\u0382\u02E7\u0382\u02EC\u0382\u02F1\u0382\u02F6\u0382\u02FB\u0382\u0300\u0382\u0305\u0382\u030A\u0382\u0310\u0382\u0316\u0382\u031C\u0382\u0322\u0382\u0328\u0382\u032E\u0382\u0334\u0382\u033A\u0382\u0340\u0382\u0346\u0382\u034C\u0382\u0352\u0382\u0358\u0382\u035E\u0382\u0364\u0382\u036A\u0382\u0370\u0382\u0376\u0382\u037C\u0383\xC4\u0384\u0385\x07w\u0385\u0386\x07k\u0386\u0387\x07p\u0387\u045C\x07v\u0388\u0389\x07w\u0389\u038A\x07k\u038A\u038B\x07p\u038B\u038C\x07v\u038C\u045C\x07:\u038D\u038E\x07w\u038E\u038F\x07k\u038F\u0390\x07p\u0390\u0391\x07v\u0391\u0392\x073\u0392\u045C\x078\u0393\u0394\x07w\u0394\u0395\x07k\u0395\u0396\x07p\u0396\u0397\x07v\u0397\u0398\x074\u0398\u045C\x076\u0399\u039A\x07w\u039A\u039B\x07k\u039B\u039C\x07p\u039C\u039D\x07v\u039D\u039E"; + SolidityLexer._serializedATNSegment2 = "\x075\u039E\u045C\x074\u039F\u03A0\x07w\u03A0\u03A1\x07k\u03A1\u03A2\x07p\u03A2\u03A3\x07v\u03A3\u03A4\x076\u03A4\u045C\x072\u03A5\u03A6\x07w\u03A6\u03A7\x07k\u03A7\u03A8\x07p\u03A8\u03A9\x07v\u03A9\u03AA\x076\u03AA\u045C\x07:\u03AB\u03AC\x07w\u03AC\u03AD\x07k\u03AD\u03AE\x07p\u03AE\u03AF\x07v\u03AF\u03B0\x077\u03B0\u045C\x078\u03B1\u03B2\x07w\u03B2\u03B3\x07k\u03B3\u03B4\x07p\u03B4\u03B5\x07v\u03B5\u03B6\x078\u03B6\u045C\x076\u03B7\u03B8\x07w\u03B8\u03B9\x07k\u03B9\u03BA\x07p\u03BA\u03BB\x07v\u03BB\u03BC\x079\u03BC\u045C\x074\u03BD\u03BE\x07w\u03BE\u03BF\x07k\u03BF\u03C0\x07p\u03C0\u03C1\x07v\u03C1\u03C2\x07:\u03C2\u045C\x072\u03C3\u03C4\x07w\u03C4\u03C5\x07k\u03C5\u03C6\x07p\u03C6\u03C7\x07v\u03C7\u03C8\x07:\u03C8\u045C\x07:\u03C9\u03CA\x07w\u03CA\u03CB\x07k\u03CB\u03CC\x07p\u03CC\u03CD\x07v\u03CD\u03CE\x07;\u03CE\u045C\x078\u03CF\u03D0\x07w\u03D0\u03D1\x07k\u03D1\u03D2\x07p\u03D2\u03D3\x07v\u03D3\u03D4\x073\u03D4\u03D5\x072\u03D5\u045C\x076\u03D6\u03D7\x07w\u03D7\u03D8\x07k\u03D8\u03D9\x07p\u03D9\u03DA\x07v\u03DA\u03DB\x073\u03DB\u03DC\x073\u03DC\u045C\x074\u03DD\u03DE\x07w\u03DE\u03DF\x07k\u03DF\u03E0\x07p\u03E0\u03E1\x07v\u03E1\u03E2\x073\u03E2\u03E3\x074\u03E3\u045C\x072\u03E4\u03E5\x07w\u03E5\u03E6\x07k\u03E6\u03E7\x07p\u03E7\u03E8\x07v\u03E8\u03E9\x073\u03E9\u03EA\x074\u03EA\u045C\x07:\u03EB\u03EC\x07w\u03EC\u03ED\x07k\u03ED\u03EE\x07p\u03EE\u03EF\x07v\u03EF\u03F0\x073\u03F0\u03F1\x075\u03F1\u045C\x078\u03F2\u03F3\x07w\u03F3\u03F4\x07k\u03F4\u03F5\x07p\u03F5\u03F6\x07v\u03F6\u03F7\x073\u03F7\u03F8\x076\u03F8\u045C\x076\u03F9\u03FA\x07w\u03FA\u03FB\x07k\u03FB\u03FC\x07p\u03FC\u03FD\x07v\u03FD\u03FE\x073\u03FE\u03FF\x077\u03FF\u045C\x074\u0400\u0401\x07w\u0401\u0402\x07k\u0402\u0403\x07p\u0403\u0404\x07v\u0404\u0405\x073\u0405\u0406\x078\u0406\u045C\x072\u0407\u0408\x07w\u0408\u0409\x07k\u0409\u040A\x07p\u040A\u040B\x07v\u040B\u040C\x073\u040C\u040D\x078\u040D\u045C\x07:\u040E\u040F\x07w\u040F\u0410\x07k\u0410\u0411\x07p\u0411\u0412\x07v\u0412\u0413\x073\u0413\u0414\x079\u0414\u045C\x078\u0415\u0416\x07w\u0416\u0417\x07k\u0417\u0418\x07p\u0418\u0419\x07v\u0419\u041A\x073\u041A\u041B\x07:\u041B\u045C\x076\u041C\u041D\x07w\u041D\u041E\x07k\u041E\u041F\x07p\u041F\u0420\x07v\u0420\u0421\x073\u0421\u0422\x07;\u0422\u045C\x074\u0423\u0424\x07w\u0424\u0425\x07k\u0425\u0426\x07p\u0426\u0427\x07v\u0427\u0428\x074\u0428\u0429\x072\u0429\u045C\x072\u042A\u042B\x07w\u042B\u042C\x07k\u042C\u042D\x07p\u042D\u042E\x07v\u042E\u042F\x074\u042F\u0430\x072\u0430\u045C\x07:\u0431\u0432\x07w\u0432\u0433\x07k\u0433\u0434\x07p\u0434\u0435\x07v\u0435\u0436\x074\u0436\u0437\x073\u0437\u045C\x078\u0438\u0439\x07w\u0439\u043A\x07k\u043A\u043B\x07p\u043B\u043C\x07v\u043C\u043D\x074\u043D\u043E\x074\u043E\u045C\x076\u043F\u0440\x07w\u0440\u0441\x07k\u0441\u0442\x07p\u0442\u0443\x07v\u0443\u0444\x074\u0444\u0445\x075\u0445\u045C\x074\u0446\u0447\x07w\u0447\u0448\x07k\u0448\u0449\x07p\u0449\u044A\x07v\u044A\u044B\x074\u044B\u044C\x076\u044C\u045C\x072\u044D\u044E\x07w\u044E\u044F\x07k\u044F\u0450\x07p\u0450\u0451\x07v\u0451\u0452\x074\u0452\u0453\x076\u0453\u045C\x07:\u0454\u0455\x07w\u0455\u0456\x07k\u0456\u0457\x07p\u0457\u0458\x07v\u0458\u0459\x074\u0459\u045A\x077\u045A\u045C\x078\u045B\u0384\u045B\u0388\u045B\u038D\u045B\u0393\u045B\u0399\u045B\u039F\u045B\u03A5\u045B\u03AB\u045B\u03B1\u045B\u03B7\u045B\u03BD\u045B\u03C3\u045B\u03C9\u045B\u03CF\u045B\u03D6\u045B\u03DD\u045B\u03E4\u045B\u03EB\u045B\u03F2\u045B\u03F9\u045B\u0400\u045B\u0407\u045B\u040E\u045B\u0415\u045B\u041C\u045B\u0423\u045B\u042A\u045B\u0431\u045B\u0438\u045B\u043F\u045B\u0446\u045B\u044D\u045B\u0454\u045C\xC6\u045D\u045E\x07d\u045E\u045F\x07{\u045F\u0460\x07v\u0460\u0461\x07g\u0461\u053A\x07u\u0462\u0463\x07d\u0463\u0464\x07{\u0464\u0465\x07v\u0465\u0466\x07g\u0466\u0467\x07u\u0467\u053A\x073\u0468\u0469\x07d\u0469\u046A\x07{\u046A\u046B\x07v\u046B\u046C\x07g\u046C\u046D\x07u\u046D\u053A\x074\u046E\u046F\x07d\u046F\u0470\x07{\u0470\u0471\x07v\u0471\u0472\x07g\u0472\u0473\x07u\u0473\u053A\x075\u0474\u0475\x07d\u0475\u0476\x07{\u0476\u0477\x07v\u0477\u0478\x07g\u0478\u0479\x07u\u0479\u053A\x076\u047A\u047B\x07d\u047B\u047C\x07{\u047C\u047D\x07v\u047D\u047E\x07g\u047E\u047F\x07u\u047F\u053A\x077\u0480\u0481\x07d\u0481\u0482\x07{\u0482\u0483\x07v\u0483\u0484\x07g\u0484\u0485\x07u\u0485\u053A\x078\u0486\u0487\x07d\u0487\u0488\x07{\u0488\u0489\x07v\u0489\u048A\x07g\u048A\u048B\x07u\u048B\u053A\x079\u048C\u048D\x07d\u048D\u048E\x07{\u048E\u048F\x07v\u048F\u0490\x07g\u0490\u0491\x07u\u0491\u053A\x07:\u0492\u0493\x07d\u0493\u0494\x07{\u0494\u0495\x07v\u0495\u0496\x07g\u0496\u0497\x07u\u0497\u053A\x07;\u0498\u0499\x07d\u0499\u049A\x07{\u049A\u049B\x07v\u049B\u049C\x07g\u049C\u049D\x07u\u049D\u049E\x073\u049E\u053A\x072\u049F\u04A0\x07d\u04A0\u04A1\x07{\u04A1\u04A2\x07v\u04A2\u04A3\x07g\u04A3\u04A4\x07u\u04A4\u04A5\x073\u04A5\u053A\x073\u04A6\u04A7\x07d\u04A7\u04A8\x07{\u04A8\u04A9\x07v\u04A9\u04AA\x07g\u04AA\u04AB\x07u\u04AB\u04AC\x073\u04AC\u053A\x074\u04AD\u04AE\x07d\u04AE\u04AF\x07{\u04AF\u04B0\x07v\u04B0\u04B1\x07g\u04B1\u04B2\x07u\u04B2\u04B3\x073\u04B3\u053A\x075\u04B4\u04B5\x07d\u04B5\u04B6\x07{\u04B6\u04B7\x07v\u04B7\u04B8\x07g\u04B8\u04B9\x07u\u04B9\u04BA\x073\u04BA\u053A\x076\u04BB\u04BC\x07d\u04BC\u04BD\x07{\u04BD\u04BE\x07v\u04BE\u04BF\x07g\u04BF\u04C0\x07u\u04C0\u04C1\x073\u04C1\u053A\x077\u04C2\u04C3\x07d\u04C3\u04C4\x07{\u04C4\u04C5\x07v\u04C5\u04C6\x07g\u04C6\u04C7\x07u\u04C7\u04C8\x073\u04C8\u053A\x078\u04C9\u04CA\x07d\u04CA\u04CB\x07{\u04CB\u04CC\x07v\u04CC\u04CD\x07g\u04CD\u04CE\x07u\u04CE\u04CF\x073\u04CF\u053A\x079\u04D0\u04D1\x07d\u04D1\u04D2\x07{\u04D2\u04D3\x07v\u04D3\u04D4\x07g\u04D4\u04D5\x07u\u04D5\u04D6\x073\u04D6\u053A\x07:\u04D7\u04D8\x07d\u04D8\u04D9\x07{\u04D9\u04DA\x07v\u04DA\u04DB\x07g\u04DB\u04DC\x07u\u04DC\u04DD\x073\u04DD\u053A\x07;\u04DE\u04DF\x07d\u04DF\u04E0\x07{\u04E0\u04E1\x07v\u04E1\u04E2\x07g\u04E2\u04E3\x07u\u04E3\u04E4\x074\u04E4\u053A\x072\u04E5\u04E6\x07d\u04E6\u04E7\x07{\u04E7\u04E8\x07v\u04E8\u04E9\x07g\u04E9\u04EA\x07u\u04EA\u04EB\x074\u04EB\u053A\x073\u04EC\u04ED\x07d\u04ED\u04EE\x07{\u04EE\u04EF\x07v\u04EF\u04F0\x07g\u04F0\u04F1\x07u\u04F1\u04F2\x074\u04F2\u053A\x074\u04F3\u04F4\x07d\u04F4\u04F5\x07{\u04F5\u04F6\x07v\u04F6\u04F7\x07g\u04F7\u04F8\x07u\u04F8\u04F9\x074\u04F9\u053A\x075\u04FA\u04FB\x07d\u04FB\u04FC\x07{\u04FC\u04FD\x07v\u04FD\u04FE\x07g\u04FE\u04FF\x07u\u04FF\u0500\x074\u0500\u053A\x076\u0501\u0502\x07d\u0502\u0503\x07{\u0503\u0504\x07v\u0504\u0505\x07g\u0505\u0506\x07u\u0506\u0507\x074\u0507\u053A\x077\u0508\u0509\x07d\u0509\u050A\x07{\u050A\u050B\x07v\u050B\u050C\x07g\u050C\u050D\x07u\u050D\u050E\x074\u050E\u053A\x078\u050F\u0510\x07d\u0510\u0511\x07{\u0511\u0512\x07v\u0512\u0513\x07g\u0513\u0514\x07u\u0514\u0515\x074\u0515\u053A\x079\u0516\u0517\x07d\u0517\u0518\x07{\u0518\u0519\x07v\u0519\u051A\x07g\u051A\u051B\x07u\u051B\u051C\x074\u051C\u053A\x07:\u051D\u051E\x07d\u051E\u051F\x07{\u051F\u0520\x07v\u0520\u0521\x07g\u0521\u0522\x07u\u0522\u0523\x074\u0523\u053A\x07;\u0524\u0525\x07d\u0525\u0526\x07{\u0526\u0527\x07v\u0527\u0528\x07g\u0528\u0529\x07u\u0529\u052A\x075\u052A\u053A\x072\u052B\u052C\x07d\u052C\u052D\x07{\u052D\u052E\x07v\u052E\u052F\x07g\u052F\u0530\x07u\u0530\u0531\x075\u0531\u053A\x073\u0532\u0533\x07d\u0533\u0534\x07{\u0534\u0535\x07v\u0535\u0536\x07g\u0536\u0537\x07u\u0537\u0538\x075\u0538\u053A\x074\u0539\u045D\u0539\u0462\u0539\u0468\u0539\u046E\u0539\u0474\u0539\u047A\u0539\u0480\u0539\u0486\u0539\u048C\u0539\u0492\u0539\u0498\u0539\u049F\u0539\u04A6\u0539\u04AD\u0539\u04B4\u0539\u04BB\u0539\u04C2\u0539\u04C9\u0539\u04D0\u0539\u04D7\u0539\u04DE\u0539\u04E5\u0539\u04EC\u0539\u04F3\u0539\u04FA\u0539\u0501\u0539\u0508\u0539\u050F\u0539\u0516\u0539\u051D\u0539\u0524\u0539\u052B\u0539\u0532\u053A\xC8\u053B\u053C\x07h\u053C\u053D\x07k\u053D\u053E\x07z\u053E\u053F\x07g\u053F\u0552\x07f\u0540\u0541\x07h\u0541\u0542\x07k\u0542\u0543\x07z\u0543\u0544\x07g\u0544\u0545\x07f\u0545\u0547\u0546\u0548 \u0547\u0546\u0548\u0549\u0549\u0547\u0549\u054A\u054A\u054B\u054B\u054D\x07z\u054C\u054E \u054D\u054C\u054E\u054F\u054F\u054D\u054F\u0550\u0550\u0552\u0551\u053B\u0551\u0540\u0552\xCA\u0553\u0554\x07w\u0554\u0555\x07h\u0555\u0556\x07k\u0556\u0557\x07z\u0557\u0558\x07g\u0558\u056C\x07f\u0559\u055A\x07w\u055A\u055B\x07h\u055B\u055C\x07k\u055C\u055D\x07z\u055D\u055E\x07g\u055E\u055F\x07f\u055F\u0561\u0560\u0562 \u0561\u0560\u0562\u0563\u0563\u0561\u0563\u0564\u0564\u0565\u0565\u0567\x07z\u0566\u0568 \u0567\u0566\u0568\u0569\u0569\u0567\u0569\u056A\u056A\u056C\u056B\u0553\u056B\u0559\u056C\xCC\u056D\u056E\x07v\u056E\u056F\x07t\u056F\u0570\x07w\u0570\u0577\x07g\u0571\u0572\x07h\u0572\u0573\x07c\u0573\u0574\x07n\u0574\u0575\x07u\u0575\u0577\x07g\u0576\u056D\u0576\u0571\u0577\xCE\u0578\u057F\xD1i\u0579\u057B\xD1i\u057A\u0579\u057A\u057B\u057B\u057C\u057C\u057D\x070\u057D\u057F\xD1i\u057E\u0578\u057E\u057A\u057F\u0585\u0580\u0582 \u0581\u0583\x07/\u0582\u0581\u0582\u0583\u0583\u0584\u0584\u0586\xD1i\u0585\u0580\u0585\u0586\u0586\xD0\u0587\u058E \u0588\u058A\x07a\u0589\u0588\u0589\u058A\u058A\u058B\u058B\u058D \u058C\u0589\u058D\u0590\u058E\u058C\u058E\u058F\u058F\xD2\u0590\u058E\u0591\u0592\x072\u0592\u0593 \u0593\u0594\xD5k\u0594\xD4\u0595\u059C\xDDo\u0596\u0598\x07a\u0597\u0596\u0597\u0598\u0598\u0599\u0599\u059B\xDDo\u059A\u0597\u059B\u059E\u059C\u059A\u059C\u059D\u059D\xD6\u059E\u059C\u059F\u05A0\x07y\u05A0\u05A1\x07g\u05A1\u05D8\x07k\u05A2\u05A3\x07i\u05A3\u05A4\x07y\u05A4\u05A5\x07g\u05A5\u05D8\x07k\u05A6\u05A7\x07u\u05A7\u05A8\x07|\u05A8\u05A9\x07c\u05A9\u05AA\x07d\u05AA\u05D8\x07q\u05AB\u05AC\x07h\u05AC\u05AD\x07k\u05AD\u05AE\x07p\u05AE\u05AF\x07p\u05AF\u05B0\x07g\u05B0\u05D8\x07{\u05B1\u05B2\x07g\u05B2\u05B3\x07v\u05B3\u05B4\x07j\u05B4\u05B5\x07g\u05B5\u05D8\x07t\u05B6\u05B7\x07u\u05B7\u05B8\x07g\u05B8\u05B9\x07e\u05B9\u05BA\x07q\u05BA\u05BB\x07p\u05BB\u05BC\x07f\u05BC\u05D8\x07u\u05BD\u05BE\x07o\u05BE\u05BF\x07k\u05BF\u05C0\x07p\u05C0\u05C1\x07w\u05C1\u05C2\x07v\u05C2\u05C3\x07g\u05C3\u05D8\x07u\u05C4\u05C5\x07j\u05C5\u05C6\x07q\u05C6\u05C7\x07w\u05C7\u05C8\x07t\u05C8\u05D8\x07u\u05C9\u05CA\x07f\u05CA\u05CB\x07c\u05CB\u05CC\x07{\u05CC\u05D8\x07u\u05CD\u05CE\x07y\u05CE\u05CF\x07g\u05CF\u05D0\x07g\u05D0\u05D1\x07m\u05D1\u05D8\x07u\u05D2\u05D3\x07{\u05D3\u05D4\x07g\u05D4\u05D5\x07c\u05D5\u05D6\x07t\u05D6\u05D8\x07u\u05D7\u059F\u05D7\u05A2\u05D7\u05A6\u05D7\u05AB\u05D7\u05B1\u05D7\u05B6\u05D7\u05BD\u05D7\u05C4\u05D7\u05C9\u05D7\u05CD\u05D7\u05D2\u05D8\xD8\u05D9\u05DA\x07j\u05DA\u05DB\x07g\u05DB\u05DC\x07z\u05DC\u05E7\u05DD\u05DF\x07$\u05DE\u05E0\xD5k\u05DF\u05DE\u05DF\u05E0\u05E0\u05E1\u05E1\u05E8\x07$\u05E2\u05E4\x07)\u05E3\u05E5\xD5k\u05E4\u05E3\u05E4\u05E5\u05E5\u05E6\u05E6\u05E8\x07)\u05E7\u05DD\u05E7\u05E2\u05E8\xDA\u05E9\u05EA\xDDo\u05EA\u05EB\xDDo\u05EB\xDC\u05EC\u05ED \u05ED\xDE\u05EE\u05EF\x07c\u05EF\u05F0\x07d\u05F0\u05F1\x07u\u05F1\u05F2\x07v\u05F2\u05F3\x07t\u05F3\u05F4\x07c\u05F4\u05F5\x07e\u05F5\u0647\x07v\u05F6\u05F7\x07c\u05F7\u05F8\x07h\u05F8\u05F9\x07v\u05F9\u05FA\x07g\u05FA\u0647\x07t\u05FB\u05FC\x07e\u05FC\u05FD\x07c\u05FD\u05FE\x07u\u05FE\u0647\x07g\u05FF\u0600\x07e\u0600\u0601\x07c\u0601\u0602\x07v\u0602\u0603\x07e\u0603\u0647\x07j\u0604\u0605\x07f\u0605\u0606\x07g\u0606\u0607\x07h\u0607\u0608\x07c\u0608\u0609\x07w\u0609\u060A\x07n\u060A\u0647\x07v\u060B\u060C\x07h\u060C\u060D\x07k\u060D\u060E\x07p\u060E\u060F\x07c\u060F\u0647\x07n\u0610\u0611\x07k\u0611\u0647\x07p\u0612\u0613\x07k\u0613\u0614\x07p\u0614\u0615\x07n\u0615\u0616\x07k\u0616\u0617\x07p\u0617\u0647\x07g\u0618\u0619\x07n\u0619\u061A\x07g\u061A\u0647\x07v\u061B\u061C\x07o\u061C\u061D\x07c\u061D\u061E\x07v\u061E\u061F\x07e\u061F\u0647\x07j\u0620\u0621\x07p\u0621\u0622\x07w\u0622\u0623\x07n\u0623\u0647\x07n\u0624\u0625\x07q\u0625\u0647\x07h\u0626\u0627\x07t\u0627\u0628\x07g\u0628\u0629\x07n\u0629\u062A\x07q\u062A\u062B\x07e\u062B\u062C\x07c\u062C\u062D\x07v\u062D\u062E\x07c\u062E\u062F\x07d\u062F\u0630\x07n\u0630\u0647\x07g\u0631\u0632\x07u\u0632\u0633\x07v\u0633\u0634\x07c\u0634\u0635\x07v\u0635\u0636\x07k\u0636\u0647\x07e\u0637\u0638\x07u\u0638\u0639\x07y\u0639\u063A\x07k\u063A\u063B\x07v\u063B\u063C\x07e\u063C\u0647\x07j\u063D\u063E\x07v\u063E\u063F\x07t\u063F\u0647\x07{\u0640\u0641\x07v\u0641\u0642\x07{\u0642\u0643\x07r\u0643\u0644\x07g\u0644\u0645\x07q\u0645\u0647\x07h\u0646\u05EE\u0646\u05F6\u0646\u05FB\u0646\u05FF\u0646\u0604\u0646\u060B\u0646\u0610\u0646\u0612\u0646\u0618\u0646\u061B\u0646\u0620\u0646\u0624\u0646\u0626\u0646\u0631\u0646\u0637\u0646\u063D\u0646\u0640\u0647\xE0\u0648\u0649\x07c\u0649\u064A\x07p\u064A\u064B\x07q\u064B\u064C\x07p\u064C\u064D\x07{\u064D\u064E\x07o\u064E\u064F\x07q\u064F\u0650\x07w\u0650\u0651\x07u\u0651\xE2\u0652\u0653\x07d\u0653\u0654\x07t\u0654\u0655\x07g\u0655\u0656\x07c\u0656\u0657\x07m\u0657\xE4\u0658\u0659\x07e\u0659\u065A\x07q\u065A\u065B\x07p\u065B\u065C\x07u\u065C\u065D\x07v\u065D\u065E\x07c\u065E\u065F\x07p\u065F\u0660\x07v\u0660\xE6\u0661\u0662\x07k\u0662\u0663\x07o\u0663\u0664\x07o\u0664\u0665\x07w\u0665\u0666\x07v\u0666\u0667\x07c\u0667\u0668\x07d\u0668\u0669\x07n\u0669\u066A\x07g\u066A\xE8\u066B\u066C\x07e\u066C\u066D\x07q\u066D\u066E\x07p\u066E\u066F\x07v\u066F\u0670\x07k\u0670\u0671\x07p\u0671\u0672\x07w\u0672\u0673\x07g"; + SolidityLexer._serializedATNSegment3 = "\u0673\xEA\u0674\u0675\x07n\u0675\u0676\x07g\u0676\u0677\x07c\u0677\u0678\x07x\u0678\u0679\x07g\u0679\xEC\u067A\u067B\x07g\u067B\u067C\x07z\u067C\u067D\x07v\u067D\u067E\x07g\u067E\u067F\x07t\u067F\u0680\x07p\u0680\u0681\x07c\u0681\u0682\x07n\u0682\xEE\u0683\u0684\x07k\u0684\u0685\x07p\u0685\u0686\x07f\u0686\u0687\x07g\u0687\u0688\x07z\u0688\u0689\x07g\u0689\u068A\x07f\u068A\xF0\u068B\u068C\x07k\u068C\u068D\x07p\u068D\u068E\x07v\u068E\u068F\x07g\u068F\u0690\x07t\u0690\u0691\x07p\u0691\u0692\x07c\u0692\u0693\x07n\u0693\xF2\u0694\u0695\x07r\u0695\u0696\x07c\u0696\u0697\x07{\u0697\u0698\x07c\u0698\u0699\x07d\u0699\u069A\x07n\u069A\u069B\x07g\u069B\xF4\u069C\u069D\x07r\u069D\u069E\x07t\u069E\u069F\x07k\u069F\u06A0\x07x\u06A0\u06A1\x07c\u06A1\u06A2\x07v\u06A2\u06A3\x07g\u06A3\xF6\u06A4\u06A5\x07r\u06A5\u06A6\x07w\u06A6\u06A7\x07d\u06A7\u06A8\x07n\u06A8\u06A9\x07k\u06A9\u06AA\x07e\u06AA\xF8\u06AB\u06AC\x07x\u06AC\u06AD\x07k\u06AD\u06AE\x07t\u06AE\u06AF\x07v\u06AF\u06B0\x07w\u06B0\u06B1\x07c\u06B1\u06B2\x07n\u06B2\xFA\u06B3\u06B4\x07r\u06B4\u06B5\x07w\u06B5\u06B6\x07t\u06B6\u06B7\x07g\u06B7\xFC\u06B8\u06B9\x07v\u06B9\u06BA\x07{\u06BA\u06BB\x07r\u06BB\u06BC\x07g\u06BC\xFE\u06BD\u06BE\x07x\u06BE\u06BF\x07k\u06BF\u06C0\x07g\u06C0\u06C1\x07y\u06C1\u0100\u06C2\u06C3\x07i\u06C3\u06C4\x07n\u06C4\u06C5\x07q\u06C5\u06C6\x07d\u06C6\u06C7\x07c\u06C7\u06C8\x07n\u06C8\u0102\u06C9\u06CA\x07e\u06CA\u06CB\x07q\u06CB\u06CC\x07p\u06CC\u06CD\x07u\u06CD\u06CE\x07v\u06CE\u06CF\x07t\u06CF\u06D0\x07w\u06D0\u06D1\x07e\u06D1\u06D2\x07v\u06D2\u06D3\x07q\u06D3\u06D4\x07t\u06D4\u0104\u06D5\u06D6\x07h\u06D6\u06D7\x07c\u06D7\u06D8\x07n\u06D8\u06D9\x07n\u06D9\u06DA\x07d\u06DA\u06DB\x07c\u06DB\u06DC\x07e\u06DC\u06DD\x07m\u06DD\u0106\u06DE\u06DF\x07t\u06DF\u06E0\x07g\u06E0\u06E1\x07e\u06E1\u06E2\x07g\u06E2\u06E3\x07k\u06E3\u06E4\x07x\u06E4\u06E5\x07g\u06E5\u0108\u06E6\u06EA\u010B\x86\u06E7\u06E9\u010D\x87\u06E8\u06E7\u06E9\u06EC\u06EA\u06E8\u06EA\u06EB\u06EB\u010A\u06EC\u06EA\u06ED\u06EE \u06EE\u010C\u06EF\u06F0 \x07\u06F0\u010E\u06F1\u06F2\x07w\u06F2\u06F3\x07p\u06F3\u06F4\x07k\u06F4\u06F5\x07e\u06F5\u06F6\x07q\u06F6\u06F7\x07f\u06F7\u06F9\x07g\u06F8\u06F1\u06F8\u06F9\u06F9\u06FA\u06FA\u06FE\x07$\u06FB\u06FD\u0111\x89\u06FC\u06FB\u06FD\u0700\u06FE\u06FC\u06FE\u06FF\u06FF\u0701\u0700\u06FE\u0701\u0714\x07$\u0702\u0703\x07w\u0703\u0704\x07p\u0704\u0705\x07k\u0705\u0706\x07e\u0706\u0707\x07q\u0707\u0708\x07f\u0708\u070A\x07g\u0709\u0702\u0709\u070A\u070A\u070B\u070B\u070F\x07)\u070C\u070E\u0113\x8A\u070D\u070C\u070E\u0711\u070F\u070D\u070F\u0710\u0710\u0712\u0711\u070F\u0712\u0714\x07)\u0713\u06F8\u0713\u0709\u0714\u0110\u0715\u0719\n\b\u0716\u0717\x07^\u0717\u0719\v\u0718\u0715\u0718\u0716\u0719\u0112\u071A\u071E\n \u071B\u071C\x07^\u071C\u071E\v\u071D\u071A\u071D\u071B\u071E\u0114\u071F\u0721 \u0720\u071F\u0721\u0722\u0722\u0720\u0722\u0723\u0723\u0724\u0724\u0726\x070\u0725\u0727 \u0726\u0725\u0727\u0728\u0728\u0726\u0728\u0729\u0729\u0730\u072A\u072C\x070\u072B\u072D \u072C\u072B\u072D\u072E\u072E\u072C\u072E\u072F\u072F\u0731\u0730\u072A\u0730\u0731\u0731\u0116\u0732\u0734 \n\u0733\u0732\u0734\u0735\u0735\u0733\u0735\u0736\u0736\u0737\u0737\u0738\b\x8C\u0738\u0118\u0739\u073A\x071\u073A\u073B\x07,\u073B\u073F\u073C\u073E\v\u073D\u073C\u073E\u0741\u073F\u0740\u073F\u073D\u0740\u0742\u0741\u073F\u0742\u0743\x07,\u0743\u0744\x071\u0744\u0745\u0745\u0746\b\x8D\u0746\u011A\u0747\u0748\x071\u0748\u0749\x071\u0749\u074D\u074A\u074C\n\v\u074B\u074A\u074C\u074F\u074D\u074B\u074D\u074E\u074E\u0750\u074F\u074D\u0750\u0751\b\x8E\u0751\u011C)\u0382\u045B\u0539\u0549\u054F\u0551\u0563\u0569\u056B\u0576\u057A\u057E\u0582\u0585\u0589\u058E\u0597\u059C\u05D7\u05DF\u05E4\u05E7\u0646\u06EA\u06F8\u06FE\u0709\u070F\u0713\u0718\u071D\u0722\u0728\u072E\u0730\u0735\u073F\u074D\b"; SolidityLexer._serializedATN = Utils.join([ _SolidityLexer._serializedATNSegment0, _SolidityLexer._serializedATNSegment1, @@ -22743,81 +22778,81 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 208; + this.state = 214; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__0 | 1 << _SolidityParser.T__12 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__17 | 1 << _SolidityParser.T__18 | 1 << _SolidityParser.T__19 | 1 << _SolidityParser.T__20 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__25 | 1 << _SolidityParser.T__27 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 33 & ~31) === 0 && (1 << _la - 33 & (1 << _SolidityParser.T__32 - 33 | 1 << _SolidityParser.T__35 - 33 | 1 << _SolidityParser.T__37 - 33 | 1 << _SolidityParser.T__41 - 33 | 1 << _SolidityParser.T__53 - 33 | 1 << _SolidityParser.T__54 - 33 | 1 << _SolidityParser.T__55 - 33 | 1 << _SolidityParser.T__56 - 33 | 1 << _SolidityParser.T__57 - 33)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96 | 1 << _SolidityParser.FallbackKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__0 | 1 << _SolidityParser.T__12 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__17 | 1 << _SolidityParser.T__18 | 1 << _SolidityParser.T__19 | 1 << _SolidityParser.T__20 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__25)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__40 - 36 | 1 << _SolidityParser.T__43 - 36 | 1 << _SolidityParser.T__45 - 36 | 1 << _SolidityParser.T__49 - 36 | 1 << _SolidityParser.T__61 - 36 | 1 << _SolidityParser.T__62 - 36 | 1 << _SolidityParser.T__63 - 36 | 1 << _SolidityParser.T__64 - 36 | 1 << _SolidityParser.T__65 - 36)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.TypeKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95 | 1 << _SolidityParser.FallbackKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 206; + this.state = 212; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 0, this._ctx)) { case 1: { - this.state = 196; + this.state = 202; this.pragmaDirective(); } break; case 2: { - this.state = 197; + this.state = 203; this.importDirective(); } break; case 3: { - this.state = 198; + this.state = 204; this.contractDefinition(); } break; case 4: { - this.state = 199; + this.state = 205; this.enumDefinition(); } break; case 5: { - this.state = 200; + this.state = 206; this.structDefinition(); } break; case 6: { - this.state = 201; + this.state = 207; this.functionDefinition(); } break; case 7: { - this.state = 202; + this.state = 208; this.fileLevelConstant(); } break; case 8: { - this.state = 203; + this.state = 209; this.customErrorDefinition(); } break; case 9: { - this.state = 204; + this.state = 210; this.typeDefinition(); } break; case 10: { - this.state = 205; + this.state = 211; this.usingForDeclaration(); } break; } } - this.state = 210; + this.state = 216; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 211; + this.state = 217; this.match(_SolidityParser.EOF); } } catch (re) { @@ -22839,13 +22874,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 213; + this.state = 219; this.match(_SolidityParser.T__0); - this.state = 214; + this.state = 220; this.pragmaName(); - this.state = 215; + this.state = 221; this.pragmaValue(); - this.state = 216; + this.state = 222; this.match(_SolidityParser.T__1); } } catch (re) { @@ -22867,7 +22902,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 218; + this.state = 224; this.identifier(); } } catch (re) { @@ -22887,27 +22922,27 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv let _localctx = new PragmaValueContext(this._ctx, this.state); this.enterRule(_localctx, 6, _SolidityParser.RULE_pragmaValue); try { - this.state = 223; + this.state = 229; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 2, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 220; + this.state = 226; this.match(_SolidityParser.T__2); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 221; + this.state = 227; this.version(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 222; + this.state = 228; this.expression(0); } break; @@ -22932,28 +22967,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 225; + this.state = 231; this.versionConstraint(); - this.state = 232; + this.state = 238; this._errHandler.sync(this); _la = this._input.LA(1); while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__3 | 1 << _SolidityParser.T__4 | 1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9 | 1 << _SolidityParser.T__10)) !== 0 || _la === _SolidityParser.DecimalNumber || _la === _SolidityParser.VersionLiteral) { { { - this.state = 227; + this.state = 233; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__3) { { - this.state = 226; + this.state = 232; this.match(_SolidityParser.T__3); } } - this.state = 229; + this.state = 235; this.versionConstraint(); } } - this.state = 234; + this.state = 240; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -22978,7 +23013,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 235; + this.state = 241; _la = this._input.LA(1); if (!((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__4 | 1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9 | 1 << _SolidityParser.T__10)) !== 0)) { this._errHandler.recoverInline(this); @@ -23008,38 +23043,38 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this.enterRule(_localctx, 12, _SolidityParser.RULE_versionConstraint); let _la; try { - this.state = 245; + this.state = 251; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 7, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 238; + this.state = 244; this._errHandler.sync(this); _la = this._input.LA(1); if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__4 | 1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9 | 1 << _SolidityParser.T__10)) !== 0) { { - this.state = 237; + this.state = 243; this.versionOperator(); } } - this.state = 240; + this.state = 246; this.match(_SolidityParser.VersionLiteral); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 242; + this.state = 248; this._errHandler.sync(this); _la = this._input.LA(1); if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__4 | 1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9 | 1 << _SolidityParser.T__10)) !== 0) { { - this.state = 241; + this.state = 247; this.versionOperator(); } } - this.state = 244; + this.state = 250; this.match(_SolidityParser.DecimalNumber); } break; @@ -23064,16 +23099,16 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 247; + this.state = 253; this.identifier(); - this.state = 250; + this.state = 256; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__11) { { - this.state = 248; + this.state = 254; this.match(_SolidityParser.T__11); - this.state = 249; + this.state = 255; this.identifier(); } } @@ -23096,114 +23131,116 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this.enterRule(_localctx, 16, _SolidityParser.RULE_importDirective); let _la; try { - this.state = 288; + this.state = 294; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 13, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 252; + this.state = 258; this.match(_SolidityParser.T__12); - this.state = 253; + this.state = 259; this.importPath(); - this.state = 256; + this.state = 262; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__11) { { - this.state = 254; + this.state = 260; this.match(_SolidityParser.T__11); - this.state = 255; + this.state = 261; this.identifier(); } } - this.state = 258; + this.state = 264; this.match(_SolidityParser.T__1); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 260; + this.state = 266; this.match(_SolidityParser.T__12); - this.state = 263; + this.state = 269; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__2: { - this.state = 261; + this.state = 267; this.match(_SolidityParser.T__2); } break; case _SolidityParser.T__13: case _SolidityParser.T__24: - case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__95: + case _SolidityParser.T__43: + case _SolidityParser.T__49: + case _SolidityParser.T__61: + case _SolidityParser.T__94: case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: { - this.state = 262; + this.state = 268; this.identifier(); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 267; + this.state = 273; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__11) { { - this.state = 265; + this.state = 271; this.match(_SolidityParser.T__11); - this.state = 266; + this.state = 272; this.identifier(); } } - this.state = 269; + this.state = 275; this.match(_SolidityParser.T__13); - this.state = 270; + this.state = 276; this.importPath(); - this.state = 271; + this.state = 277; this.match(_SolidityParser.T__1); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 273; + this.state = 279; this.match(_SolidityParser.T__12); - this.state = 274; + this.state = 280; this.match(_SolidityParser.T__14); - this.state = 275; + this.state = 281; this.importDeclaration(); - this.state = 280; + this.state = 286; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 276; + this.state = 282; this.match(_SolidityParser.T__15); - this.state = 277; + this.state = 283; this.importDeclaration(); } } - this.state = 282; + this.state = 288; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 283; + this.state = 289; this.match(_SolidityParser.T__16); - this.state = 284; + this.state = 290; this.match(_SolidityParser.T__13); - this.state = 285; + this.state = 291; this.importPath(); - this.state = 286; + this.state = 292; this.match(_SolidityParser.T__1); } break; @@ -23227,7 +23264,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 290; + this.state = 296; this.match(_SolidityParser.StringLiteralFragment); } } catch (re) { @@ -23250,16 +23287,16 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 293; + this.state = 299; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__17) { { - this.state = 292; + this.state = 298; this.match(_SolidityParser.T__17); } } - this.state = 295; + this.state = 301; _la = this._input.LA(1); if (!((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__18 | 1 << _SolidityParser.T__19 | 1 << _SolidityParser.T__20)) !== 0)) { this._errHandler.recoverInline(this); @@ -23270,52 +23307,52 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 296; + this.state = 302; this.identifier(); - this.state = 306; + this.state = 312; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__21) { { - this.state = 297; + this.state = 303; this.match(_SolidityParser.T__21); - this.state = 298; + this.state = 304; this.inheritanceSpecifier(); - this.state = 303; + this.state = 309; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 299; + this.state = 305; this.match(_SolidityParser.T__15); - this.state = 300; + this.state = 306; this.inheritanceSpecifier(); } } - this.state = 305; + this.state = 311; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 308; + this.state = 314; this.match(_SolidityParser.T__14); - this.state = 312; + this.state = 318; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__25 | 1 << _SolidityParser.T__27 | 1 << _SolidityParser.T__28 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 32 & ~31) === 0 && (1 << _la - 32 & (1 << _SolidityParser.T__31 - 32 | 1 << _SolidityParser.T__32 - 32 | 1 << _SolidityParser.T__35 - 32 | 1 << _SolidityParser.T__37 - 32 | 1 << _SolidityParser.T__41 - 32 | 1 << _SolidityParser.T__53 - 32 | 1 << _SolidityParser.T__54 - 32 | 1 << _SolidityParser.T__55 - 32 | 1 << _SolidityParser.T__56 - 32 | 1 << _SolidityParser.T__57 - 32)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96 | 1 << _SolidityParser.FallbackKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__25)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__36 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__39 - 36 | 1 << _SolidityParser.T__40 - 36 | 1 << _SolidityParser.T__43 - 36 | 1 << _SolidityParser.T__45 - 36 | 1 << _SolidityParser.T__49 - 36 | 1 << _SolidityParser.T__61 - 36 | 1 << _SolidityParser.T__62 - 36 | 1 << _SolidityParser.T__63 - 36 | 1 << _SolidityParser.T__64 - 36 | 1 << _SolidityParser.T__65 - 36)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.TypeKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95 | 1 << _SolidityParser.FallbackKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { { - this.state = 309; + this.state = 315; this.contractPart(); } } - this.state = 314; + this.state = 320; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 315; + this.state = 321; this.match(_SolidityParser.T__16); } } catch (re) { @@ -23338,25 +23375,25 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 317; - this.userDefinedTypeName(); this.state = 323; + this.userDefinedTypeName(); + this.state = 329; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__22) { { - this.state = 318; + this.state = 324; this.match(_SolidityParser.T__22); - this.state = 320; + this.state = 326; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 319; + this.state = 325; this.expressionList(); } } - this.state = 322; + this.state = 328; this.match(_SolidityParser.T__23); } } @@ -23378,69 +23415,69 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv let _localctx = new ContractPartContext(this._ctx, this.state); this.enterRule(_localctx, 24, _SolidityParser.RULE_contractPart); try { - this.state = 334; + this.state = 340; this._errHandler.sync(this); switch (this.interpreter.adaptivePredict(this._input, 20, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 325; + this.state = 331; this.stateVariableDeclaration(); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 326; + this.state = 332; this.usingForDeclaration(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 327; + this.state = 333; this.structDefinition(); } break; case 4: this.enterOuterAlt(_localctx, 4); { - this.state = 328; + this.state = 334; this.modifierDefinition(); } break; case 5: this.enterOuterAlt(_localctx, 5); { - this.state = 329; + this.state = 335; this.functionDefinition(); } break; case 6: this.enterOuterAlt(_localctx, 6); { - this.state = 330; + this.state = 336; this.eventDefinition(); } break; case 7: this.enterOuterAlt(_localctx, 7); { - this.state = 331; + this.state = 337; this.enumDefinition(); } break; case 8: this.enterOuterAlt(_localctx, 8); { - this.state = 332; + this.state = 338; this.customErrorDefinition(); } break; case 9: this.enterOuterAlt(_localctx, 9); { - this.state = 333; + this.state = 339; this.typeDefinition(); } break; @@ -23465,49 +23502,49 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 336; + this.state = 342; this.typeName(0); - this.state = 345; + this.state = 351; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la - 97 & ~31) === 0 && (1 << _la - 97 & (1 << _SolidityParser.T__96 - 97 | 1 << _SolidityParser.ConstantKeyword - 97 | 1 << _SolidityParser.ImmutableKeyword - 97 | 1 << _SolidityParser.InternalKeyword - 97 | 1 << _SolidityParser.PrivateKeyword - 97 | 1 << _SolidityParser.PublicKeyword - 97)) !== 0) { + while ((_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.ConstantKeyword - 96 | 1 << _SolidityParser.ImmutableKeyword - 96 | 1 << _SolidityParser.InternalKeyword - 96 | 1 << _SolidityParser.PrivateKeyword - 96 | 1 << _SolidityParser.PublicKeyword - 96)) !== 0) { { - this.state = 343; + this.state = 349; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.PublicKeyword: { - this.state = 337; + this.state = 343; this.match(_SolidityParser.PublicKeyword); } break; case _SolidityParser.InternalKeyword: { - this.state = 338; + this.state = 344; this.match(_SolidityParser.InternalKeyword); } break; case _SolidityParser.PrivateKeyword: { - this.state = 339; + this.state = 345; this.match(_SolidityParser.PrivateKeyword); } break; case _SolidityParser.ConstantKeyword: { - this.state = 340; + this.state = 346; this.match(_SolidityParser.ConstantKeyword); } break; case _SolidityParser.ImmutableKeyword: { - this.state = 341; + this.state = 347; this.match(_SolidityParser.ImmutableKeyword); } break; - case _SolidityParser.T__96: + case _SolidityParser.T__95: { - this.state = 342; + this.state = 348; this.overrideSpecifier(); } break; @@ -23515,24 +23552,24 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv throw new import_NoViableAltException.NoViableAltException(this); } } - this.state = 347; + this.state = 353; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 348; + this.state = 354; this.identifier(); - this.state = 351; + this.state = 357; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__10) { { - this.state = 349; + this.state = 355; this.match(_SolidityParser.T__10); - this.state = 350; + this.state = 356; this.expression(0); } } - this.state = 353; + this.state = 359; this.match(_SolidityParser.T__1); } } catch (re) { @@ -23554,17 +23591,17 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 355; + this.state = 361; this.typeName(0); - this.state = 356; + this.state = 362; this.match(_SolidityParser.ConstantKeyword); - this.state = 357; + this.state = 363; this.identifier(); - this.state = 358; + this.state = 364; this.match(_SolidityParser.T__10); - this.state = 359; + this.state = 365; this.expression(0); - this.state = 360; + this.state = 366; this.match(_SolidityParser.T__1); } } catch (re) { @@ -23586,13 +23623,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 362; + this.state = 368; this.match(_SolidityParser.T__24); - this.state = 363; + this.state = 369; this.identifier(); - this.state = 364; + this.state = 370; this.parameterList(); - this.state = 365; + this.state = 371; this.match(_SolidityParser.T__1); } } catch (re) { @@ -23614,15 +23651,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 367; + this.state = 373; this.match(_SolidityParser.TypeKeyword); - this.state = 368; + this.state = 374; this.identifier(); - this.state = 369; + this.state = 375; this.match(_SolidityParser.T__21); - this.state = 370; + this.state = 376; this.elementaryTypeName(); - this.state = 371; + this.state = 377; this.match(_SolidityParser.T__1); } } catch (re) { @@ -23645,33 +23682,33 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv try { this.enterOuterAlt(_localctx, 1); { - this.state = 373; + this.state = 379; this.match(_SolidityParser.T__25); - this.state = 374; + this.state = 380; this.usingForObject(); - this.state = 375; + this.state = 381; this.match(_SolidityParser.T__26); - this.state = 378; + this.state = 384; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__2: { - this.state = 376; + this.state = 382; this.match(_SolidityParser.T__2); } break; case _SolidityParser.T__13: case _SolidityParser.T__24: - case _SolidityParser.T__29: - case _SolidityParser.T__35: case _SolidityParser.T__37: - case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__54: - case _SolidityParser.T__55: - case _SolidityParser.T__56: - case _SolidityParser.T__57: - case _SolidityParser.T__95: + case _SolidityParser.T__43: + case _SolidityParser.T__45: + case _SolidityParser.T__49: + case _SolidityParser.T__61: + case _SolidityParser.T__62: + case _SolidityParser.T__63: + case _SolidityParser.T__64: + case _SolidityParser.T__65: + case _SolidityParser.T__94: case _SolidityParser.Int: case _SolidityParser.Uint: case _SolidityParser.Byte: @@ -23679,27 +23716,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.Ufixed: case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: { - this.state = 377; + this.state = 383; this.typeName(0); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 381; + this.state = 387; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.GlobalKeyword) { { - this.state = 380; + this.state = 386; this.match(_SolidityParser.GlobalKeyword); } } - this.state = 383; + this.state = 389; this.match(_SolidityParser.T__1); } } catch (re) { @@ -23720,49 +23758,51 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this.enterRule(_localctx, 36, _SolidityParser.RULE_usingForObject); let _la; try { - this.state = 397; + this.state = 403; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__13: case _SolidityParser.T__24: - case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__95: + case _SolidityParser.T__43: + case _SolidityParser.T__49: + case _SolidityParser.T__61: + case _SolidityParser.T__94: case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: this.enterOuterAlt(_localctx, 1); { - this.state = 385; + this.state = 391; this.userDefinedTypeName(); } break; case _SolidityParser.T__14: this.enterOuterAlt(_localctx, 2); { - this.state = 386; - this.match(_SolidityParser.T__14); - this.state = 387; - this.userDefinedTypeName(); this.state = 392; + this.match(_SolidityParser.T__14); + this.state = 393; + this.usingForObjectDirective(); + this.state = 398; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 388; + this.state = 394; this.match(_SolidityParser.T__15); - this.state = 389; - this.userDefinedTypeName(); + this.state = 395; + this.usingForObjectDirective(); } } - this.state = 394; + this.state = 400; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 395; + this.state = 401; this.match(_SolidityParser.T__16); } break; @@ -23782,47 +23822,113 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } return _localctx; } + usingForObjectDirective() { + let _localctx = new UsingForObjectDirectiveContext(this._ctx, this.state); + this.enterRule(_localctx, 38, _SolidityParser.RULE_usingForObjectDirective); + let _la; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 405; + this.userDefinedTypeName(); + this.state = 408; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === _SolidityParser.T__11) { + { + this.state = 406; + this.match(_SolidityParser.T__11); + this.state = 407; + this.userDefinableOperators(); + } + } + } + } catch (re) { + if (re instanceof import_RecognitionException.RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return _localctx; + } + userDefinableOperators() { + let _localctx = new UserDefinableOperatorsContext(this._ctx, this.state); + this.enterRule(_localctx, 40, _SolidityParser.RULE_userDefinableOperators); + let _la; + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 410; + _la = this._input.LA(1); + if (!((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__2 | 1 << _SolidityParser.T__4 | 1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9 | 1 << _SolidityParser.T__27 | 1 << _SolidityParser.T__28 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 32 & ~31) === 0 && (1 << _la - 32 & (1 << _SolidityParser.T__31 - 32 | 1 << _SolidityParser.T__32 - 32 | 1 << _SolidityParser.T__33 - 32 | 1 << _SolidityParser.T__34 - 32)) !== 0)) { + this._errHandler.recoverInline(this); + } else { + if (this._input.LA(1) === import_Token.Token.EOF) { + this.matchedEOF = true; + } + this._errHandler.reportMatch(this); + this.consume(); + } + } + } catch (re) { + if (re instanceof import_RecognitionException.RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return _localctx; + } structDefinition() { let _localctx = new StructDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 38, _SolidityParser.RULE_structDefinition); + this.enterRule(_localctx, 42, _SolidityParser.RULE_structDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 399; - this.match(_SolidityParser.T__27); - this.state = 400; + this.state = 412; + this.match(_SolidityParser.T__35); + this.state = 413; this.identifier(); - this.state = 401; + this.state = 414; this.match(_SolidityParser.T__14); - this.state = 412; + this.state = 425; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 402; + this.state = 415; this.variableDeclaration(); - this.state = 403; + this.state = 416; this.match(_SolidityParser.T__1); - this.state = 409; + this.state = 422; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + while (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { { - this.state = 404; + this.state = 417; this.variableDeclaration(); - this.state = 405; + this.state = 418; this.match(_SolidityParser.T__1); } } - this.state = 411; + this.state = 424; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 414; + this.state = 427; this.match(_SolidityParser.T__16); } } catch (re) { @@ -23840,41 +23946,41 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } modifierDefinition() { let _localctx = new ModifierDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 40, _SolidityParser.RULE_modifierDefinition); + this.enterRule(_localctx, 44, _SolidityParser.RULE_modifierDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 416; - this.match(_SolidityParser.T__28); - this.state = 417; + this.state = 429; + this.match(_SolidityParser.T__36); + this.state = 430; this.identifier(); - this.state = 419; + this.state = 432; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__22) { { - this.state = 418; + this.state = 431; this.parameterList(); } } - this.state = 425; + this.state = 438; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === _SolidityParser.T__96 || _la === _SolidityParser.VirtualKeyword) { + while (_la === _SolidityParser.T__95 || _la === _SolidityParser.VirtualKeyword) { { - this.state = 423; + this.state = 436; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.VirtualKeyword: { - this.state = 421; + this.state = 434; this.match(_SolidityParser.VirtualKeyword); } break; - case _SolidityParser.T__96: + case _SolidityParser.T__95: { - this.state = 422; + this.state = 435; this.overrideSpecifier(); } break; @@ -23882,22 +23988,22 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv throw new import_NoViableAltException.NoViableAltException(this); } } - this.state = 427; + this.state = 440; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 430; + this.state = 443; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__1: { - this.state = 428; + this.state = 441; this.match(_SolidityParser.T__1); } break; case _SolidityParser.T__14: { - this.state = 429; + this.state = 442; this.block(); } break; @@ -23920,30 +24026,30 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } modifierInvocation() { let _localctx = new ModifierInvocationContext(this._ctx, this.state); - this.enterRule(_localctx, 42, _SolidityParser.RULE_modifierInvocation); + this.enterRule(_localctx, 46, _SolidityParser.RULE_modifierInvocation); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 432; + this.state = 445; this.identifier(); - this.state = 438; + this.state = 451; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__22) { { - this.state = 433; + this.state = 446; this.match(_SolidityParser.T__22); - this.state = 435; + this.state = 448; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 434; + this.state = 447; this.expressionList(); } } - this.state = 437; + this.state = 450; this.match(_SolidityParser.T__23); } } @@ -23963,38 +24069,38 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionDefinition() { let _localctx = new FunctionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 44, _SolidityParser.RULE_functionDefinition); + this.enterRule(_localctx, 48, _SolidityParser.RULE_functionDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 440; + this.state = 453; this.functionDescriptor(); - this.state = 441; + this.state = 454; this.parameterList(); - this.state = 442; + this.state = 455; this.modifierList(); - this.state = 444; + this.state = 457; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__30) { + if (_la === _SolidityParser.T__38) { { - this.state = 443; + this.state = 456; this.returnParameters(); } } - this.state = 448; + this.state = 461; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__1: { - this.state = 446; + this.state = 459; this.match(_SolidityParser.T__1); } break; case _SolidityParser.T__14: { - this.state = 447; + this.state = 460; this.block(); } break; @@ -24017,23 +24123,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionDescriptor() { let _localctx = new FunctionDescriptorContext(this._ctx, this.state); - this.enterRule(_localctx, 46, _SolidityParser.RULE_functionDescriptor); + this.enterRule(_localctx, 50, _SolidityParser.RULE_functionDescriptor); let _la; try { - this.state = 457; + this.state = 470; this._errHandler.sync(this); switch (this._input.LA(1)) { - case _SolidityParser.T__29: + case _SolidityParser.T__37: this.enterOuterAlt(_localctx, 1); { - this.state = 450; - this.match(_SolidityParser.T__29); - this.state = 452; + this.state = 463; + this.match(_SolidityParser.T__37); + this.state = 465; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 451; + this.state = 464; this.identifier(); } } @@ -24042,21 +24148,21 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.ConstructorKeyword: this.enterOuterAlt(_localctx, 2); { - this.state = 454; + this.state = 467; this.match(_SolidityParser.ConstructorKeyword); } break; case _SolidityParser.FallbackKeyword: this.enterOuterAlt(_localctx, 3); { - this.state = 455; + this.state = 468; this.match(_SolidityParser.FallbackKeyword); } break; case _SolidityParser.ReceiveKeyword: this.enterOuterAlt(_localctx, 4); { - this.state = 456; + this.state = 469; this.match(_SolidityParser.ReceiveKeyword); } break; @@ -24078,13 +24184,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } returnParameters() { let _localctx = new ReturnParametersContext(this._ctx, this.state); - this.enterRule(_localctx, 48, _SolidityParser.RULE_returnParameters); + this.enterRule(_localctx, 52, _SolidityParser.RULE_returnParameters); try { this.enterOuterAlt(_localctx, 1); { - this.state = 459; - this.match(_SolidityParser.T__30); - this.state = 460; + this.state = 472; + this.match(_SolidityParser.T__38); + this.state = 473; this.parameterList(); } } catch (re) { @@ -24102,70 +24208,70 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } modifierList() { let _localctx = new ModifierListContext(this._ctx, this.state); - this.enterRule(_localctx, 50, _SolidityParser.RULE_modifierList); + this.enterRule(_localctx, 54, _SolidityParser.RULE_modifierList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 472; + this.state = 485; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.T__96 - 96 | 1 << _SolidityParser.ConstantKeyword - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.ExternalKeyword - 96 | 1 << _SolidityParser.InternalKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.PrivateKeyword - 96 | 1 << _SolidityParser.PublicKeyword - 96 | 1 << _SolidityParser.VirtualKeyword - 96 | 1 << _SolidityParser.PureKeyword - 96 | 1 << _SolidityParser.ViewKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + while (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.T__95 - 95 | 1 << _SolidityParser.ConstantKeyword - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.ExternalKeyword - 95 | 1 << _SolidityParser.InternalKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.PrivateKeyword - 95 | 1 << _SolidityParser.PublicKeyword - 95 | 1 << _SolidityParser.VirtualKeyword - 95 | 1 << _SolidityParser.PureKeyword - 95 | 1 << _SolidityParser.ViewKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 470; + this.state = 483; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 40, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 41, this._ctx)) { case 1: { - this.state = 462; + this.state = 475; this.match(_SolidityParser.ExternalKeyword); } break; case 2: { - this.state = 463; + this.state = 476; this.match(_SolidityParser.PublicKeyword); } break; case 3: { - this.state = 464; + this.state = 477; this.match(_SolidityParser.InternalKeyword); } break; case 4: { - this.state = 465; + this.state = 478; this.match(_SolidityParser.PrivateKeyword); } break; case 5: { - this.state = 466; + this.state = 479; this.match(_SolidityParser.VirtualKeyword); } break; case 6: { - this.state = 467; + this.state = 480; this.stateMutability(); } break; case 7: { - this.state = 468; + this.state = 481; this.modifierInvocation(); } break; case 8: { - this.state = 469; + this.state = 482; this.overrideSpecifier(); } break; } } - this.state = 474; + this.state = 487; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -24185,27 +24291,27 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } eventDefinition() { let _localctx = new EventDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 52, _SolidityParser.RULE_eventDefinition); + this.enterRule(_localctx, 56, _SolidityParser.RULE_eventDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 475; - this.match(_SolidityParser.T__31); - this.state = 476; + this.state = 488; + this.match(_SolidityParser.T__39); + this.state = 489; this.identifier(); - this.state = 477; + this.state = 490; this.eventParameterList(); - this.state = 479; + this.state = 492; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.AnonymousKeyword) { { - this.state = 478; + this.state = 491; this.match(_SolidityParser.AnonymousKeyword); } } - this.state = 481; + this.state = 494; this.match(_SolidityParser.T__1); } } catch (re) { @@ -24223,11 +24329,11 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } enumValue() { let _localctx = new EnumValueContext(this._ctx, this.state); - this.enterRule(_localctx, 54, _SolidityParser.RULE_enumValue); + this.enterRule(_localctx, 58, _SolidityParser.RULE_enumValue); try { this.enterOuterAlt(_localctx, 1); { - this.state = 483; + this.state = 496; this.identifier(); } } catch (re) { @@ -24245,43 +24351,43 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } enumDefinition() { let _localctx = new EnumDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 56, _SolidityParser.RULE_enumDefinition); + this.enterRule(_localctx, 60, _SolidityParser.RULE_enumDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 485; - this.match(_SolidityParser.T__32); - this.state = 486; + this.state = 498; + this.match(_SolidityParser.T__40); + this.state = 499; this.identifier(); - this.state = 487; + this.state = 500; this.match(_SolidityParser.T__14); - this.state = 489; + this.state = 502; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 488; + this.state = 501; this.enumValue(); } } - this.state = 495; + this.state = 508; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 491; + this.state = 504; this.match(_SolidityParser.T__15); - this.state = 492; + this.state = 505; this.enumValue(); } } - this.state = 497; + this.state = 510; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 498; + this.state = 511; this.match(_SolidityParser.T__16); } } catch (re) { @@ -24299,39 +24405,39 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } parameterList() { let _localctx = new ParameterListContext(this._ctx, this.state); - this.enterRule(_localctx, 58, _SolidityParser.RULE_parameterList); + this.enterRule(_localctx, 62, _SolidityParser.RULE_parameterList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 500; + this.state = 513; this.match(_SolidityParser.T__22); - this.state = 509; + this.state = 522; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 501; + this.state = 514; this.parameter(); - this.state = 506; + this.state = 519; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 502; + this.state = 515; this.match(_SolidityParser.T__15); - this.state = 503; + this.state = 516; this.parameter(); } } - this.state = 508; + this.state = 521; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 511; + this.state = 524; this.match(_SolidityParser.T__23); } } catch (re) { @@ -24349,29 +24455,29 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } parameter() { let _localctx = new ParameterContext(this._ctx, this.state); - this.enterRule(_localctx, 60, _SolidityParser.RULE_parameter); + this.enterRule(_localctx, 64, _SolidityParser.RULE_parameter); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 513; + this.state = 526; this.typeName(0); - this.state = 515; + this.state = 528; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 47, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 48, this._ctx)) { case 1: { - this.state = 514; + this.state = 527; this.storageLocation(); } break; } - this.state = 518; + this.state = 531; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 517; + this.state = 530; this.identifier(); } } @@ -24391,39 +24497,39 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } eventParameterList() { let _localctx = new EventParameterListContext(this._ctx, this.state); - this.enterRule(_localctx, 62, _SolidityParser.RULE_eventParameterList); + this.enterRule(_localctx, 66, _SolidityParser.RULE_eventParameterList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 520; + this.state = 533; this.match(_SolidityParser.T__22); - this.state = 529; + this.state = 542; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 521; + this.state = 534; this.eventParameter(); - this.state = 526; + this.state = 539; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 522; + this.state = 535; this.match(_SolidityParser.T__15); - this.state = 523; + this.state = 536; this.eventParameter(); } } - this.state = 528; + this.state = 541; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 531; + this.state = 544; this.match(_SolidityParser.T__23); } } catch (re) { @@ -24441,28 +24547,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } eventParameter() { let _localctx = new EventParameterContext(this._ctx, this.state); - this.enterRule(_localctx, 64, _SolidityParser.RULE_eventParameter); + this.enterRule(_localctx, 68, _SolidityParser.RULE_eventParameter); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 533; + this.state = 546; this.typeName(0); - this.state = 535; + this.state = 548; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.IndexedKeyword) { { - this.state = 534; + this.state = 547; this.match(_SolidityParser.IndexedKeyword); } } - this.state = 538; + this.state = 551; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 537; + this.state = 550; this.identifier(); } } @@ -24482,39 +24588,39 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionTypeParameterList() { let _localctx = new FunctionTypeParameterListContext(this._ctx, this.state); - this.enterRule(_localctx, 66, _SolidityParser.RULE_functionTypeParameterList); + this.enterRule(_localctx, 70, _SolidityParser.RULE_functionTypeParameterList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 540; + this.state = 553; this.match(_SolidityParser.T__22); - this.state = 549; + this.state = 562; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 541; + this.state = 554; this.functionTypeParameter(); - this.state = 546; + this.state = 559; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 542; + this.state = 555; this.match(_SolidityParser.T__15); - this.state = 543; + this.state = 556; this.functionTypeParameter(); } } - this.state = 548; + this.state = 561; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 551; + this.state = 564; this.match(_SolidityParser.T__23); } } catch (re) { @@ -24532,19 +24638,19 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionTypeParameter() { let _localctx = new FunctionTypeParameterContext(this._ctx, this.state); - this.enterRule(_localctx, 68, _SolidityParser.RULE_functionTypeParameter); + this.enterRule(_localctx, 72, _SolidityParser.RULE_functionTypeParameter); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 553; + this.state = 566; this.typeName(0); - this.state = 555; + this.state = 568; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 40 & ~31) === 0 && (1 << _la - 40 & (1 << _SolidityParser.T__39 - 40 | 1 << _SolidityParser.T__40 - 40 | 1 << _SolidityParser.T__41 - 40)) !== 0) { + if ((_la - 48 & ~31) === 0 && (1 << _la - 48 & (1 << _SolidityParser.T__47 - 48 | 1 << _SolidityParser.T__48 - 48 | 1 << _SolidityParser.T__49 - 48)) !== 0) { { - this.state = 554; + this.state = 567; this.storageLocation(); } } @@ -24564,23 +24670,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } variableDeclaration() { let _localctx = new VariableDeclarationContext(this._ctx, this.state); - this.enterRule(_localctx, 70, _SolidityParser.RULE_variableDeclaration); + this.enterRule(_localctx, 74, _SolidityParser.RULE_variableDeclaration); try { this.enterOuterAlt(_localctx, 1); { - this.state = 557; + this.state = 570; this.typeName(0); - this.state = 559; + this.state = 572; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 56, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 57, this._ctx)) { case 1: { - this.state = 558; + this.state = 571; this.storageLocation(); } break; } - this.state = 561; + this.state = 574; this.identifier(); } } catch (re) { @@ -24604,53 +24710,53 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv let _parentState = this.state; let _localctx = new TypeNameContext(this._ctx, _parentState); let _prevctx = _localctx; - let _startState = 72; - this.enterRecursionRule(_localctx, 72, _SolidityParser.RULE_typeName, _p); + let _startState = 76; + this.enterRecursionRule(_localctx, 76, _SolidityParser.RULE_typeName, _p); let _la; try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 570; + this.state = 583; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 57, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 58, this._ctx)) { case 1: { - this.state = 564; + this.state = 577; this.elementaryTypeName(); } break; case 2: { - this.state = 565; + this.state = 578; this.userDefinedTypeName(); } break; case 3: { - this.state = 566; + this.state = 579; this.mapping(); } break; case 4: { - this.state = 567; + this.state = 580; this.functionTypeName(); } break; case 5: { - this.state = 568; - this.match(_SolidityParser.T__35); - this.state = 569; + this.state = 581; + this.match(_SolidityParser.T__43); + this.state = 582; this.match(_SolidityParser.PayableKeyword); } break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 580; + this.state = 593; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 59, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { @@ -24661,29 +24767,29 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new TypeNameContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_typeName); - this.state = 572; + this.state = 585; if (!this.precpred(this._ctx, 3)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } - this.state = 573; - this.match(_SolidityParser.T__33); - this.state = 575; + this.state = 586; + this.match(_SolidityParser.T__41); + this.state = 588; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 574; + this.state = 587; this.expression(0); } } - this.state = 577; - this.match(_SolidityParser.T__34); + this.state = 590; + this.match(_SolidityParser.T__42); } } } - this.state = 582; + this.state = 595; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 59, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); } } } catch (re) { @@ -24701,30 +24807,30 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } userDefinedTypeName() { let _localctx = new UserDefinedTypeNameContext(this._ctx, this.state); - this.enterRule(_localctx, 74, _SolidityParser.RULE_userDefinedTypeName); + this.enterRule(_localctx, 78, _SolidityParser.RULE_userDefinedTypeName); try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 583; + this.state = 596; this.identifier(); - this.state = 588; + this.state = 601; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 61, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 584; - this.match(_SolidityParser.T__36); - this.state = 585; + this.state = 597; + this.match(_SolidityParser.T__44); + this.state = 598; this.identifier(); } } } - this.state = 590; + this.state = 603; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 60, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 61, this._ctx); } } } catch (re) { @@ -24742,45 +24848,25 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } mappingKey() { let _localctx = new MappingKeyContext(this._ctx, this.state); - this.enterRule(_localctx, 76, _SolidityParser.RULE_mappingKey); + this.enterRule(_localctx, 80, _SolidityParser.RULE_mappingKey); try { - this.state = 593; + this.state = 606; this._errHandler.sync(this); - switch (this._input.LA(1)) { - case _SolidityParser.T__35: - case _SolidityParser.T__54: - case _SolidityParser.T__55: - case _SolidityParser.T__56: - case _SolidityParser.T__57: - case _SolidityParser.Int: - case _SolidityParser.Uint: - case _SolidityParser.Byte: - case _SolidityParser.Fixed: - case _SolidityParser.Ufixed: + switch (this.interpreter.adaptivePredict(this._input, 62, this._ctx)) { + case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 591; + this.state = 604; this.elementaryTypeName(); } break; - case _SolidityParser.T__13: - case _SolidityParser.T__24: - case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__95: - case _SolidityParser.LeaveKeyword: - case _SolidityParser.PayableKeyword: - case _SolidityParser.ConstructorKeyword: - case _SolidityParser.ReceiveKeyword: - case _SolidityParser.Identifier: + case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 592; + this.state = 605; this.userDefinedTypeName(); } break; - default: - throw new import_NoViableAltException.NoViableAltException(this); } } catch (re) { if (re instanceof import_RecognitionException.RecognitionException) { @@ -24797,21 +24883,40 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } mapping() { let _localctx = new MappingContext(this._ctx, this.state); - this.enterRule(_localctx, 78, _SolidityParser.RULE_mapping); + this.enterRule(_localctx, 82, _SolidityParser.RULE_mapping); + let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 595; - this.match(_SolidityParser.T__37); - this.state = 596; + this.state = 608; + this.match(_SolidityParser.T__45); + this.state = 609; this.match(_SolidityParser.T__22); - this.state = 597; + this.state = 610; this.mappingKey(); - this.state = 598; - this.match(_SolidityParser.T__38); - this.state = 599; + this.state = 612; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + { + this.state = 611; + this.mappingKeyName(); + } + } + this.state = 614; + this.match(_SolidityParser.T__46); + this.state = 615; this.typeName(0); - this.state = 600; + this.state = 617; + this._errHandler.sync(this); + _la = this._input.LA(1); + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + { + this.state = 616; + this.mappingValueName(); + } + } + this.state = 619; this.match(_SolidityParser.T__23); } } catch (re) { @@ -24827,35 +24932,79 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } return _localctx; } + mappingKeyName() { + let _localctx = new MappingKeyNameContext(this._ctx, this.state); + this.enterRule(_localctx, 84, _SolidityParser.RULE_mappingKeyName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 621; + this.identifier(); + } + } catch (re) { + if (re instanceof import_RecognitionException.RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return _localctx; + } + mappingValueName() { + let _localctx = new MappingValueNameContext(this._ctx, this.state); + this.enterRule(_localctx, 86, _SolidityParser.RULE_mappingValueName); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 623; + this.identifier(); + } + } catch (re) { + if (re instanceof import_RecognitionException.RecognitionException) { + _localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return _localctx; + } functionTypeName() { let _localctx = new FunctionTypeNameContext(this._ctx, this.state); - this.enterRule(_localctx, 80, _SolidityParser.RULE_functionTypeName); + this.enterRule(_localctx, 88, _SolidityParser.RULE_functionTypeName); try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 602; - this.match(_SolidityParser.T__29); - this.state = 603; + this.state = 625; + this.match(_SolidityParser.T__37); + this.state = 626; this.functionTypeParameterList(); - this.state = 609; + this.state = 632; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 63, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 66, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { - this.state = 607; + this.state = 630; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.InternalKeyword: { - this.state = 604; + this.state = 627; this.match(_SolidityParser.InternalKeyword); } break; case _SolidityParser.ExternalKeyword: { - this.state = 605; + this.state = 628; this.match(_SolidityParser.ExternalKeyword); } break; @@ -24864,7 +25013,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.PureKeyword: case _SolidityParser.ViewKeyword: { - this.state = 606; + this.state = 629; this.stateMutability(); } break; @@ -24873,18 +25022,18 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } } } - this.state = 611; + this.state = 634; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 63, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 66, this._ctx); } - this.state = 614; + this.state = 637; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 64, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 67, this._ctx)) { case 1: { - this.state = 612; - this.match(_SolidityParser.T__30); - this.state = 613; + this.state = 635; + this.match(_SolidityParser.T__38); + this.state = 636; this.functionTypeParameterList(); } break; @@ -24905,14 +25054,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } storageLocation() { let _localctx = new StorageLocationContext(this._ctx, this.state); - this.enterRule(_localctx, 82, _SolidityParser.RULE_storageLocation); + this.enterRule(_localctx, 90, _SolidityParser.RULE_storageLocation); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 616; + this.state = 639; _la = this._input.LA(1); - if (!((_la - 40 & ~31) === 0 && (1 << _la - 40 & (1 << _SolidityParser.T__39 - 40 | 1 << _SolidityParser.T__40 - 40 | 1 << _SolidityParser.T__41 - 40)) !== 0)) { + if (!((_la - 48 & ~31) === 0 && (1 << _la - 48 & (1 << _SolidityParser.T__47 - 48 | 1 << _SolidityParser.T__48 - 48 | 1 << _SolidityParser.T__49 - 48)) !== 0)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -24937,14 +25086,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } stateMutability() { let _localctx = new StateMutabilityContext(this._ctx, this.state); - this.enterRule(_localctx, 84, _SolidityParser.RULE_stateMutability); + this.enterRule(_localctx, 92, _SolidityParser.RULE_stateMutability); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 618; + this.state = 641; _la = this._input.LA(1); - if (!((_la - 111 & ~31) === 0 && (1 << _la - 111 & (1 << _SolidityParser.ConstantKeyword - 111 | 1 << _SolidityParser.PayableKeyword - 111 | 1 << _SolidityParser.PureKeyword - 111 | 1 << _SolidityParser.ViewKeyword - 111)) !== 0)) { + if (!((_la - 110 & ~31) === 0 && (1 << _la - 110 & (1 << _SolidityParser.ConstantKeyword - 110 | 1 << _SolidityParser.PayableKeyword - 110 | 1 << _SolidityParser.PureKeyword - 110 | 1 << _SolidityParser.ViewKeyword - 110)) !== 0)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -24969,28 +25118,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } block() { let _localctx = new BlockContext(this._ctx, this.state); - this.enterRule(_localctx, 86, _SolidityParser.RULE_block); + this.enterRule(_localctx, 94, _SolidityParser.RULE_block); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 620; + this.state = 643; this.match(_SolidityParser.T__14); - this.state = 624; + this.state = 647; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__14 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__26 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__42 - 38 | 1 << _SolidityParser.T__44 - 38 | 1 << _SolidityParser.T__46 - 38 | 1 << _SolidityParser.T__47 - 38 | 1 << _SolidityParser.T__48 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__50 - 38 | 1 << _SolidityParser.T__51 - 38 | 1 << _SolidityParser.T__52 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.BreakKeyword - 96 | 1 << _SolidityParser.ContinueKeyword - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__14 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__26 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__50 - 38 | 1 << _SolidityParser.T__52 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.BreakKeyword - 103 | 1 << _SolidityParser.ContinueKeyword - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { { - this.state = 621; + this.state = 644; this.statement(); } } - this.state = 626; + this.state = 649; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 627; + this.state = 650; this.match(_SolidityParser.T__16); } } catch (re) { @@ -25008,113 +25157,113 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } statement() { let _localctx = new StatementContext(this._ctx, this.state); - this.enterRule(_localctx, 88, _SolidityParser.RULE_statement); + this.enterRule(_localctx, 96, _SolidityParser.RULE_statement); try { - this.state = 644; + this.state = 667; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 66, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 69, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 629; + this.state = 652; this.ifStatement(); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 630; + this.state = 653; this.tryStatement(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 631; + this.state = 654; this.whileStatement(); } break; case 4: this.enterOuterAlt(_localctx, 4); { - this.state = 632; + this.state = 655; this.forStatement(); } break; case 5: this.enterOuterAlt(_localctx, 5); { - this.state = 633; + this.state = 656; this.block(); } break; case 6: this.enterOuterAlt(_localctx, 6); { - this.state = 634; + this.state = 657; this.inlineAssemblyStatement(); } break; case 7: this.enterOuterAlt(_localctx, 7); { - this.state = 635; + this.state = 658; this.doWhileStatement(); } break; case 8: this.enterOuterAlt(_localctx, 8); { - this.state = 636; + this.state = 659; this.continueStatement(); } break; case 9: this.enterOuterAlt(_localctx, 9); { - this.state = 637; + this.state = 660; this.breakStatement(); } break; case 10: this.enterOuterAlt(_localctx, 10); { - this.state = 638; + this.state = 661; this.returnStatement(); } break; case 11: this.enterOuterAlt(_localctx, 11); { - this.state = 639; + this.state = 662; this.throwStatement(); } break; case 12: this.enterOuterAlt(_localctx, 12); { - this.state = 640; + this.state = 663; this.emitStatement(); } break; case 13: this.enterOuterAlt(_localctx, 13); { - this.state = 641; + this.state = 664; this.simpleStatement(); } break; case 14: this.enterOuterAlt(_localctx, 14); { - this.state = 642; + this.state = 665; this.uncheckedStatement(); } break; case 15: this.enterOuterAlt(_localctx, 15); { - this.state = 643; + this.state = 666; this.revertStatement(); } break; @@ -25134,13 +25283,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } expressionStatement() { let _localctx = new ExpressionStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 90, _SolidityParser.RULE_expressionStatement); + this.enterRule(_localctx, 98, _SolidityParser.RULE_expressionStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 646; + this.state = 669; this.expression(0); - this.state = 647; + this.state = 670; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25158,28 +25307,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } ifStatement() { let _localctx = new IfStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 92, _SolidityParser.RULE_ifStatement); + this.enterRule(_localctx, 100, _SolidityParser.RULE_ifStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 649; - this.match(_SolidityParser.T__42); - this.state = 650; + this.state = 672; + this.match(_SolidityParser.T__50); + this.state = 673; this.match(_SolidityParser.T__22); - this.state = 651; + this.state = 674; this.expression(0); - this.state = 652; + this.state = 675; this.match(_SolidityParser.T__23); - this.state = 653; + this.state = 676; this.statement(); - this.state = 656; + this.state = 679; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 67, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 70, this._ctx)) { case 1: { - this.state = 654; - this.match(_SolidityParser.T__43); - this.state = 655; + this.state = 677; + this.match(_SolidityParser.T__51); + this.state = 678; this.statement(); } break; @@ -25200,40 +25349,40 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } tryStatement() { let _localctx = new TryStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 94, _SolidityParser.RULE_tryStatement); + this.enterRule(_localctx, 102, _SolidityParser.RULE_tryStatement); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 658; - this.match(_SolidityParser.T__44); - this.state = 659; + this.state = 681; + this.match(_SolidityParser.T__52); + this.state = 682; this.expression(0); - this.state = 661; + this.state = 684; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__30) { + if (_la === _SolidityParser.T__38) { { - this.state = 660; + this.state = 683; this.returnParameters(); } } - this.state = 663; + this.state = 686; this.block(); - this.state = 665; + this.state = 688; this._errHandler.sync(this); _la = this._input.LA(1); do { { { - this.state = 664; + this.state = 687; this.catchClause(); } } - this.state = 667; + this.state = 690; this._errHandler.sync(this); _la = this._input.LA(1); - } while (_la === _SolidityParser.T__45); + } while (_la === _SolidityParser.T__53); } } catch (re) { if (re instanceof import_RecognitionException.RecognitionException) { @@ -25250,32 +25399,32 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } catchClause() { let _localctx = new CatchClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 96, _SolidityParser.RULE_catchClause); + this.enterRule(_localctx, 104, _SolidityParser.RULE_catchClause); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 669; - this.match(_SolidityParser.T__45); - this.state = 674; + this.state = 692; + this.match(_SolidityParser.T__53); + this.state = 697; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24)) !== 0 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24)) !== 0 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 671; + this.state = 694; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 670; + this.state = 693; this.identifier(); } } - this.state = 673; + this.state = 696; this.parameterList(); } } - this.state = 676; + this.state = 699; this.block(); } } catch (re) { @@ -25293,19 +25442,19 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } whileStatement() { let _localctx = new WhileStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 98, _SolidityParser.RULE_whileStatement); + this.enterRule(_localctx, 106, _SolidityParser.RULE_whileStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 678; - this.match(_SolidityParser.T__46); - this.state = 679; + this.state = 701; + this.match(_SolidityParser.T__54); + this.state = 702; this.match(_SolidityParser.T__22); - this.state = 680; + this.state = 703; this.expression(0); - this.state = 681; + this.state = 704; this.match(_SolidityParser.T__23); - this.state = 682; + this.state = 705; this.statement(); } } catch (re) { @@ -25323,22 +25472,22 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } simpleStatement() { let _localctx = new SimpleStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 100, _SolidityParser.RULE_simpleStatement); + this.enterRule(_localctx, 108, _SolidityParser.RULE_simpleStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 686; + this.state = 709; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 72, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 75, this._ctx)) { case 1: { - this.state = 684; + this.state = 707; this.variableDeclarationStatement(); } break; case 2: { - this.state = 685; + this.state = 708; this.expressionStatement(); } break; @@ -25359,13 +25508,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } uncheckedStatement() { let _localctx = new UncheckedStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 102, _SolidityParser.RULE_uncheckedStatement); + this.enterRule(_localctx, 110, _SolidityParser.RULE_uncheckedStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 688; - this.match(_SolidityParser.T__47); - this.state = 689; + this.state = 711; + this.match(_SolidityParser.T__55); + this.state = 712; this.block(); } } catch (re) { @@ -25383,16 +25532,16 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } forStatement() { let _localctx = new ForStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 104, _SolidityParser.RULE_forStatement); + this.enterRule(_localctx, 112, _SolidityParser.RULE_forStatement); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 691; + this.state = 714; this.match(_SolidityParser.T__26); - this.state = 692; + this.state = 715; this.match(_SolidityParser.T__22); - this.state = 695; + this.state = 718; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__5: @@ -25400,24 +25549,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.T__22: case _SolidityParser.T__24: case _SolidityParser.T__29: - case _SolidityParser.T__33: - case _SolidityParser.T__35: + case _SolidityParser.T__30: case _SolidityParser.T__37: case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__54: - case _SolidityParser.T__55: - case _SolidityParser.T__56: - case _SolidityParser.T__57: - case _SolidityParser.T__58: - case _SolidityParser.T__59: - case _SolidityParser.T__60: + case _SolidityParser.T__43: + case _SolidityParser.T__45: + case _SolidityParser.T__49: + case _SolidityParser.T__61: case _SolidityParser.T__62: case _SolidityParser.T__63: case _SolidityParser.T__64: case _SolidityParser.T__65: case _SolidityParser.T__66: - case _SolidityParser.T__95: + case _SolidityParser.T__67: + case _SolidityParser.T__68: + case _SolidityParser.T__70: + case _SolidityParser.T__71: + case _SolidityParser.T__94: case _SolidityParser.Int: case _SolidityParser.Uint: case _SolidityParser.Byte: @@ -25430,25 +25578,26 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: case _SolidityParser.TypeKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: case _SolidityParser.StringLiteralFragment: { - this.state = 693; + this.state = 716; this.simpleStatement(); } break; case _SolidityParser.T__1: { - this.state = 694; + this.state = 717; this.match(_SolidityParser.T__1); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 699; + this.state = 722; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__5: @@ -25456,24 +25605,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.T__22: case _SolidityParser.T__24: case _SolidityParser.T__29: - case _SolidityParser.T__33: - case _SolidityParser.T__35: + case _SolidityParser.T__30: case _SolidityParser.T__37: case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__54: - case _SolidityParser.T__55: - case _SolidityParser.T__56: - case _SolidityParser.T__57: - case _SolidityParser.T__58: - case _SolidityParser.T__59: - case _SolidityParser.T__60: + case _SolidityParser.T__43: + case _SolidityParser.T__45: + case _SolidityParser.T__49: + case _SolidityParser.T__61: case _SolidityParser.T__62: case _SolidityParser.T__63: case _SolidityParser.T__64: case _SolidityParser.T__65: case _SolidityParser.T__66: - case _SolidityParser.T__95: + case _SolidityParser.T__67: + case _SolidityParser.T__68: + case _SolidityParser.T__70: + case _SolidityParser.T__71: + case _SolidityParser.T__94: case _SolidityParser.Int: case _SolidityParser.Uint: case _SolidityParser.Byte: @@ -25486,36 +25634,37 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: case _SolidityParser.TypeKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: case _SolidityParser.StringLiteralFragment: { - this.state = 697; + this.state = 720; this.expressionStatement(); } break; case _SolidityParser.T__1: { - this.state = 698; + this.state = 721; this.match(_SolidityParser.T__1); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 702; + this.state = 725; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 701; + this.state = 724; this.expression(0); } } - this.state = 704; + this.state = 727; this.match(_SolidityParser.T__23); - this.state = 705; + this.state = 728; this.statement(); } } catch (re) { @@ -25533,36 +25682,36 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } inlineAssemblyStatement() { let _localctx = new InlineAssemblyStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 106, _SolidityParser.RULE_inlineAssemblyStatement); + this.enterRule(_localctx, 114, _SolidityParser.RULE_inlineAssemblyStatement); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 707; - this.match(_SolidityParser.T__48); - this.state = 709; + this.state = 730; + this.match(_SolidityParser.T__56); + this.state = 732; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.StringLiteralFragment) { { - this.state = 708; + this.state = 731; this.match(_SolidityParser.StringLiteralFragment); } } - this.state = 715; + this.state = 738; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__22) { { - this.state = 711; + this.state = 734; this.match(_SolidityParser.T__22); - this.state = 712; + this.state = 735; this.inlineAssemblyStatementFlag(); - this.state = 713; + this.state = 736; this.match(_SolidityParser.T__23); } } - this.state = 717; + this.state = 740; this.assemblyBlock(); } } catch (re) { @@ -25580,11 +25729,11 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } inlineAssemblyStatementFlag() { let _localctx = new InlineAssemblyStatementFlagContext(this._ctx, this.state); - this.enterRule(_localctx, 108, _SolidityParser.RULE_inlineAssemblyStatementFlag); + this.enterRule(_localctx, 116, _SolidityParser.RULE_inlineAssemblyStatementFlag); try { this.enterOuterAlt(_localctx, 1); { - this.state = 719; + this.state = 742; this.stringLiteral(); } } catch (re) { @@ -25602,23 +25751,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } doWhileStatement() { let _localctx = new DoWhileStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 110, _SolidityParser.RULE_doWhileStatement); + this.enterRule(_localctx, 118, _SolidityParser.RULE_doWhileStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 721; - this.match(_SolidityParser.T__49); - this.state = 722; + this.state = 744; + this.match(_SolidityParser.T__57); + this.state = 745; this.statement(); - this.state = 723; - this.match(_SolidityParser.T__46); - this.state = 724; + this.state = 746; + this.match(_SolidityParser.T__54); + this.state = 747; this.match(_SolidityParser.T__22); - this.state = 725; + this.state = 748; this.expression(0); - this.state = 726; + this.state = 749; this.match(_SolidityParser.T__23); - this.state = 727; + this.state = 750; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25636,13 +25785,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } continueStatement() { let _localctx = new ContinueStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 112, _SolidityParser.RULE_continueStatement); + this.enterRule(_localctx, 120, _SolidityParser.RULE_continueStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 729; + this.state = 752; this.match(_SolidityParser.ContinueKeyword); - this.state = 730; + this.state = 753; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25660,13 +25809,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } breakStatement() { let _localctx = new BreakStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 114, _SolidityParser.RULE_breakStatement); + this.enterRule(_localctx, 122, _SolidityParser.RULE_breakStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 732; + this.state = 755; this.match(_SolidityParser.BreakKeyword); - this.state = 733; + this.state = 756; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25684,23 +25833,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } returnStatement() { let _localctx = new ReturnStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 116, _SolidityParser.RULE_returnStatement); + this.enterRule(_localctx, 124, _SolidityParser.RULE_returnStatement); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 735; - this.match(_SolidityParser.T__50); - this.state = 737; + this.state = 758; + this.match(_SolidityParser.T__58); + this.state = 760; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 736; + this.state = 759; this.expression(0); } } - this.state = 739; + this.state = 762; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25718,13 +25867,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } throwStatement() { let _localctx = new ThrowStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 118, _SolidityParser.RULE_throwStatement); + this.enterRule(_localctx, 126, _SolidityParser.RULE_throwStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 741; - this.match(_SolidityParser.T__51); - this.state = 742; + this.state = 764; + this.match(_SolidityParser.T__59); + this.state = 765; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25742,15 +25891,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } emitStatement() { let _localctx = new EmitStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 120, _SolidityParser.RULE_emitStatement); + this.enterRule(_localctx, 128, _SolidityParser.RULE_emitStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 744; - this.match(_SolidityParser.T__52); - this.state = 745; + this.state = 767; + this.match(_SolidityParser.T__60); + this.state = 768; this.functionCall(); - this.state = 746; + this.state = 769; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25768,15 +25917,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } revertStatement() { let _localctx = new RevertStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 122, _SolidityParser.RULE_revertStatement); + this.enterRule(_localctx, 130, _SolidityParser.RULE_revertStatement); try { this.enterOuterAlt(_localctx, 1); { - this.state = 748; - this.match(_SolidityParser.T__53); - this.state = 749; + this.state = 771; + this.match(_SolidityParser.T__61); + this.state = 772; this.functionCall(); - this.state = 750; + this.state = 773; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25794,51 +25943,51 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } variableDeclarationStatement() { let _localctx = new VariableDeclarationStatementContext(this._ctx, this.state); - this.enterRule(_localctx, 124, _SolidityParser.RULE_variableDeclarationStatement); + this.enterRule(_localctx, 132, _SolidityParser.RULE_variableDeclarationStatement); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 759; + this.state = 782; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 79, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 82, this._ctx)) { case 1: { - this.state = 752; - this.match(_SolidityParser.T__54); - this.state = 753; + this.state = 775; + this.match(_SolidityParser.T__62); + this.state = 776; this.identifierList(); } break; case 2: { - this.state = 754; + this.state = 777; this.variableDeclaration(); } break; case 3: { - this.state = 755; + this.state = 778; this.match(_SolidityParser.T__22); - this.state = 756; + this.state = 779; this.variableDeclarationList(); - this.state = 757; + this.state = 780; this.match(_SolidityParser.T__23); } break; } - this.state = 763; + this.state = 786; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__10) { { - this.state = 761; + this.state = 784; this.match(_SolidityParser.T__10); - this.state = 762; + this.state = 785; this.expression(0); } } - this.state = 765; + this.state = 788; this.match(_SolidityParser.T__1); } } catch (re) { @@ -25856,40 +26005,40 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } variableDeclarationList() { let _localctx = new VariableDeclarationListContext(this._ctx, this.state); - this.enterRule(_localctx, 126, _SolidityParser.RULE_variableDeclarationList); + this.enterRule(_localctx, 134, _SolidityParser.RULE_variableDeclarationList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 768; + this.state = 791; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 767; + this.state = 790; this.variableDeclaration(); } } - this.state = 776; + this.state = 799; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 770; + this.state = 793; this.match(_SolidityParser.T__15); - this.state = 772; + this.state = 795; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__37 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.Int - 95 | 1 << _SolidityParser.Uint - 95 | 1 << _SolidityParser.Byte - 95 | 1 << _SolidityParser.Fixed - 95 | 1 << _SolidityParser.Ufixed - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 771; + this.state = 794; this.variableDeclaration(); } } } } - this.state = 778; + this.state = 801; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -25909,49 +26058,49 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } identifierList() { let _localctx = new IdentifierListContext(this._ctx, this.state); - this.enterRule(_localctx, 128, _SolidityParser.RULE_identifierList); + this.enterRule(_localctx, 136, _SolidityParser.RULE_identifierList); let _la; try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 779; + this.state = 802; this.match(_SolidityParser.T__22); - this.state = 786; + this.state = 809; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 88, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 781; + this.state = 804; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 780; + this.state = 803; this.identifier(); } } - this.state = 783; + this.state = 806; this.match(_SolidityParser.T__15); } } } - this.state = 788; + this.state = 811; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 85, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 88, this._ctx); } - this.state = 790; + this.state = 813; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 789; + this.state = 812; this.identifier(); } } - this.state = 792; + this.state = 815; this.match(_SolidityParser.T__23); } } catch (re) { @@ -25969,14 +26118,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } elementaryTypeName() { let _localctx = new ElementaryTypeNameContext(this._ctx, this.state); - this.enterRule(_localctx, 130, _SolidityParser.RULE_elementaryTypeName); + this.enterRule(_localctx, 138, _SolidityParser.RULE_elementaryTypeName); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 794; + this.state = 817; _la = this._input.LA(1); - if (!((_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__54 - 36 | 1 << _SolidityParser.T__55 - 36 | 1 << _SolidityParser.T__56 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 98 & ~31) === 0 && (1 << _la - 98 & (1 << _SolidityParser.Int - 98 | 1 << _SolidityParser.Uint - 98 | 1 << _SolidityParser.Byte - 98 | 1 << _SolidityParser.Fixed - 98 | 1 << _SolidityParser.Ufixed - 98)) !== 0)) { + if (!((_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__62 - 44 | 1 << _SolidityParser.T__63 - 44 | 1 << _SolidityParser.T__64 - 44 | 1 << _SolidityParser.T__65 - 44)) !== 0 || (_la - 97 & ~31) === 0 && (1 << _la - 97 & (1 << _SolidityParser.Int - 97 | 1 << _SolidityParser.Uint - 97 | 1 << _SolidityParser.Byte - 97 | 1 << _SolidityParser.Fixed - 97 | 1 << _SolidityParser.Ufixed - 97)) !== 0)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26007,39 +26156,39 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv let _parentState = this.state; let _localctx = new ExpressionContext(this._ctx, _parentState); let _prevctx = _localctx; - let _startState = 132; - this.enterRecursionRule(_localctx, 132, _SolidityParser.RULE_expression, _p); + let _startState = 140; + this.enterRecursionRule(_localctx, 140, _SolidityParser.RULE_expression, _p); let _la; try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 814; + this.state = 837; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 87, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 90, this._ctx)) { case 1: { - this.state = 797; - this.match(_SolidityParser.T__60); - this.state = 798; + this.state = 820; + this.match(_SolidityParser.T__68); + this.state = 821; this.typeName(0); } break; case 2: { - this.state = 799; + this.state = 822; this.match(_SolidityParser.T__22); - this.state = 800; + this.state = 823; this.expression(0); - this.state = 801; + this.state = 824; this.match(_SolidityParser.T__23); } break; case 3: { - this.state = 803; + this.state = 826; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__58 || _la === _SolidityParser.T__59)) { + if (!(_la === _SolidityParser.T__66 || _la === _SolidityParser.T__67)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26048,15 +26197,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 804; + this.state = 827; this.expression(19); } break; case 4: { - this.state = 805; + this.state = 828; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__62 || _la === _SolidityParser.T__63)) { + if (!(_la === _SolidityParser.T__29 || _la === _SolidityParser.T__30)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26065,54 +26214,45 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 806; + this.state = 829; this.expression(18); } break; case 5: { - this.state = 807; - _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__64 || _la === _SolidityParser.T__65)) { - this._errHandler.recoverInline(this); - } else { - if (this._input.LA(1) === import_Token.Token.EOF) { - this.matchedEOF = true; - } - this._errHandler.reportMatch(this); - this.consume(); - } - this.state = 808; + this.state = 830; + this.match(_SolidityParser.T__70); + this.state = 831; this.expression(17); } break; case 6: { - this.state = 809; - this.match(_SolidityParser.T__66); - this.state = 810; + this.state = 832; + this.match(_SolidityParser.T__71); + this.state = 833; this.expression(16); } break; case 7: { - this.state = 811; + this.state = 834; this.match(_SolidityParser.T__5); - this.state = 812; + this.state = 835; this.expression(15); } break; case 8: { - this.state = 813; + this.state = 836; this.primaryExpression(); } break; } this._ctx._stop = this._input.tryLT(-1); - this.state = 890; + this.state = 913; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 91, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { if (this._parseListeners != null) { @@ -26120,20 +26260,20 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } _prevctx = _localctx; { - this.state = 888; + this.state = 911; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 90, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 93, this._ctx)) { case 1: { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 816; + this.state = 839; if (!this.precpred(this._ctx, 14)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 14)"); } - this.state = 817; - this.match(_SolidityParser.T__67); - this.state = 818; + this.state = 840; + this.match(_SolidityParser.T__72); + this.state = 841; this.expression(15); } break; @@ -26141,13 +26281,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 819; + this.state = 842; if (!this.precpred(this._ctx, 13)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 13)"); } - this.state = 820; + this.state = 843; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__2 || _la === _SolidityParser.T__68 || _la === _SolidityParser.T__69)) { + if (!((_la - 3 & ~31) === 0 && (1 << _la - 3 & (1 << _SolidityParser.T__2 - 3 | 1 << _SolidityParser.T__31 - 3 | 1 << _SolidityParser.T__32 - 3)) !== 0)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26156,7 +26296,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 821; + this.state = 844; this.expression(14); } break; @@ -26164,13 +26304,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 822; + this.state = 845; if (!this.precpred(this._ctx, 12)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 12)"); } - this.state = 823; + this.state = 846; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__62 || _la === _SolidityParser.T__63)) { + if (!(_la === _SolidityParser.T__29 || _la === _SolidityParser.T__30)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26179,7 +26319,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 824; + this.state = 847; this.expression(13); } break; @@ -26187,13 +26327,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 825; + this.state = 848; if (!this.precpred(this._ctx, 11)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 11)"); } - this.state = 826; + this.state = 849; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__70 || _la === _SolidityParser.T__71)) { + if (!(_la === _SolidityParser.T__73 || _la === _SolidityParser.T__74)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26202,7 +26342,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 827; + this.state = 850; this.expression(12); } break; @@ -26210,13 +26350,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 828; + this.state = 851; if (!this.precpred(this._ctx, 10)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 10)"); } - this.state = 829; - this.match(_SolidityParser.T__72); - this.state = 830; + this.state = 852; + this.match(_SolidityParser.T__28); + this.state = 853; this.expression(11); } break; @@ -26224,13 +26364,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 831; + this.state = 854; if (!this.precpred(this._ctx, 9)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 9)"); } - this.state = 832; + this.state = 855; this.match(_SolidityParser.T__4); - this.state = 833; + this.state = 856; this.expression(10); } break; @@ -26238,13 +26378,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 834; + this.state = 857; if (!this.precpred(this._ctx, 8)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 8)"); } - this.state = 835; - this.match(_SolidityParser.T__73); - this.state = 836; + this.state = 858; + this.match(_SolidityParser.T__27); + this.state = 859; this.expression(9); } break; @@ -26252,11 +26392,11 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 837; + this.state = 860; if (!this.precpred(this._ctx, 7)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 7)"); } - this.state = 838; + this.state = 861; _la = this._input.LA(1); if (!((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__6 | 1 << _SolidityParser.T__7 | 1 << _SolidityParser.T__8 | 1 << _SolidityParser.T__9)) !== 0)) { this._errHandler.recoverInline(this); @@ -26267,7 +26407,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 839; + this.state = 862; this.expression(8); } break; @@ -26275,13 +26415,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 840; + this.state = 863; if (!this.precpred(this._ctx, 6)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 6)"); } - this.state = 841; + this.state = 864; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__74 || _la === _SolidityParser.T__75)) { + if (!(_la === _SolidityParser.T__33 || _la === _SolidityParser.T__34)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26290,7 +26430,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 842; + this.state = 865; this.expression(7); } break; @@ -26298,13 +26438,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 843; + this.state = 866; if (!this.precpred(this._ctx, 5)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 5)"); } - this.state = 844; - this.match(_SolidityParser.T__76); - this.state = 845; + this.state = 867; + this.match(_SolidityParser.T__75); + this.state = 868; this.expression(6); } break; @@ -26312,13 +26452,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 846; + this.state = 869; if (!this.precpred(this._ctx, 4)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 4)"); } - this.state = 847; + this.state = 870; this.match(_SolidityParser.T__3); - this.state = 848; + this.state = 871; this.expression(5); } break; @@ -26326,17 +26466,17 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 849; + this.state = 872; if (!this.precpred(this._ctx, 3)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 3)"); } - this.state = 850; - this.match(_SolidityParser.T__77); - this.state = 851; + this.state = 873; + this.match(_SolidityParser.T__76); + this.state = 874; this.expression(0); - this.state = 852; - this.match(_SolidityParser.T__61); - this.state = 853; + this.state = 875; + this.match(_SolidityParser.T__69); + this.state = 876; this.expression(4); } break; @@ -26344,13 +26484,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 855; + this.state = 878; if (!this.precpred(this._ctx, 2)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 2)"); } - this.state = 856; + this.state = 879; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__10 || (_la - 79 & ~31) === 0 && (1 << _la - 79 & (1 << _SolidityParser.T__78 - 79 | 1 << _SolidityParser.T__79 - 79 | 1 << _SolidityParser.T__80 - 79 | 1 << _SolidityParser.T__81 - 79 | 1 << _SolidityParser.T__82 - 79 | 1 << _SolidityParser.T__83 - 79 | 1 << _SolidityParser.T__84 - 79 | 1 << _SolidityParser.T__85 - 79 | 1 << _SolidityParser.T__86 - 79 | 1 << _SolidityParser.T__87 - 79)) !== 0)) { + if (!(_la === _SolidityParser.T__10 || (_la - 78 & ~31) === 0 && (1 << _la - 78 & (1 << _SolidityParser.T__77 - 78 | 1 << _SolidityParser.T__78 - 78 | 1 << _SolidityParser.T__79 - 78 | 1 << _SolidityParser.T__80 - 78 | 1 << _SolidityParser.T__81 - 78 | 1 << _SolidityParser.T__82 - 78 | 1 << _SolidityParser.T__83 - 78 | 1 << _SolidityParser.T__84 - 78 | 1 << _SolidityParser.T__85 - 78 | 1 << _SolidityParser.T__86 - 78)) !== 0)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26359,7 +26499,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 857; + this.state = 880; this.expression(3); } break; @@ -26367,13 +26507,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 858; + this.state = 881; if (!this.precpred(this._ctx, 27)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 27)"); } - this.state = 859; + this.state = 882; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__58 || _la === _SolidityParser.T__59)) { + if (!(_la === _SolidityParser.T__66 || _la === _SolidityParser.T__67)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -26388,63 +26528,63 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 860; + this.state = 883; if (!this.precpred(this._ctx, 25)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 25)"); } - this.state = 861; - this.match(_SolidityParser.T__33); - this.state = 862; + this.state = 884; + this.match(_SolidityParser.T__41); + this.state = 885; this.expression(0); - this.state = 863; - this.match(_SolidityParser.T__34); + this.state = 886; + this.match(_SolidityParser.T__42); } break; case 16: { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 865; + this.state = 888; if (!this.precpred(this._ctx, 24)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 24)"); } - this.state = 866; - this.match(_SolidityParser.T__33); - this.state = 868; + this.state = 889; + this.match(_SolidityParser.T__41); + this.state = 891; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 867; + this.state = 890; this.expression(0); } } - this.state = 870; - this.match(_SolidityParser.T__61); - this.state = 872; + this.state = 893; + this.match(_SolidityParser.T__69); + this.state = 895; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 871; + this.state = 894; this.expression(0); } } - this.state = 874; - this.match(_SolidityParser.T__34); + this.state = 897; + this.match(_SolidityParser.T__42); } break; case 17: { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 875; + this.state = 898; if (!this.precpred(this._ctx, 23)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 23)"); } - this.state = 876; - this.match(_SolidityParser.T__36); - this.state = 877; + this.state = 899; + this.match(_SolidityParser.T__44); + this.state = 900; this.identifier(); } break; @@ -26452,15 +26592,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 878; + this.state = 901; if (!this.precpred(this._ctx, 22)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 22)"); } - this.state = 879; + this.state = 902; this.match(_SolidityParser.T__14); - this.state = 880; + this.state = 903; this.nameValueList(); - this.state = 881; + this.state = 904; this.match(_SolidityParser.T__16); } break; @@ -26468,24 +26608,24 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv { _localctx = new ExpressionContext(_parentctx, _parentState); this.pushNewRecursionContext(_localctx, _startState, _SolidityParser.RULE_expression); - this.state = 883; + this.state = 906; if (!this.precpred(this._ctx, 21)) { throw this.createFailedPredicateException("this.precpred(this._ctx, 21)"); } - this.state = 884; + this.state = 907; this.match(_SolidityParser.T__22); - this.state = 885; + this.state = 908; this.functionCallArguments(); - this.state = 886; + this.state = 909; this.match(_SolidityParser.T__23); } break; } } } - this.state = 892; + this.state = 915; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 91, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx); } } } catch (re) { @@ -26503,71 +26643,71 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } primaryExpression() { let _localctx = new PrimaryExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 134, _SolidityParser.RULE_primaryExpression); + this.enterRule(_localctx, 142, _SolidityParser.RULE_primaryExpression); try { - this.state = 902; + this.state = 925; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 92, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 95, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 893; + this.state = 916; this.match(_SolidityParser.BooleanLiteral); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 894; + this.state = 917; this.numberLiteral(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 895; + this.state = 918; this.hexLiteral(); } break; case 4: this.enterOuterAlt(_localctx, 4); { - this.state = 896; + this.state = 919; this.stringLiteral(); } break; case 5: this.enterOuterAlt(_localctx, 5); { - this.state = 897; + this.state = 920; this.identifier(); } break; case 6: this.enterOuterAlt(_localctx, 6); { - this.state = 898; + this.state = 921; this.match(_SolidityParser.TypeKeyword); } break; case 7: this.enterOuterAlt(_localctx, 7); { - this.state = 899; + this.state = 922; this.match(_SolidityParser.PayableKeyword); } break; case 8: this.enterOuterAlt(_localctx, 8); { - this.state = 900; + this.state = 923; this.tupleExpression(); } break; case 9: this.enterOuterAlt(_localctx, 9); { - this.state = 901; + this.state = 924; this.typeName(0); } break; @@ -26587,26 +26727,26 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } expressionList() { let _localctx = new ExpressionListContext(this._ctx, this.state); - this.enterRule(_localctx, 136, _SolidityParser.RULE_expressionList); + this.enterRule(_localctx, 144, _SolidityParser.RULE_expressionList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 904; + this.state = 927; this.expression(0); - this.state = 909; + this.state = 932; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 905; + this.state = 928; this.match(_SolidityParser.T__15); - this.state = 906; + this.state = 929; this.expression(0); } } - this.state = 911; + this.state = 934; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -26626,38 +26766,38 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } nameValueList() { let _localctx = new NameValueListContext(this._ctx, this.state); - this.enterRule(_localctx, 138, _SolidityParser.RULE_nameValueList); + this.enterRule(_localctx, 146, _SolidityParser.RULE_nameValueList); let _la; try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 912; + this.state = 935; this.nameValue(); - this.state = 917; + this.state = 940; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 97, this._ctx); while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 913; + this.state = 936; this.match(_SolidityParser.T__15); - this.state = 914; + this.state = 937; this.nameValue(); } } } - this.state = 919; + this.state = 942; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 94, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 97, this._ctx); } - this.state = 921; + this.state = 944; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__15) { { - this.state = 920; + this.state = 943; this.match(_SolidityParser.T__15); } } @@ -26677,15 +26817,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } nameValue() { let _localctx = new NameValueContext(this._ctx, this.state); - this.enterRule(_localctx, 140, _SolidityParser.RULE_nameValue); + this.enterRule(_localctx, 148, _SolidityParser.RULE_nameValue); try { this.enterOuterAlt(_localctx, 1); { - this.state = 923; + this.state = 946; this.identifier(); - this.state = 924; - this.match(_SolidityParser.T__61); - this.state = 925; + this.state = 947; + this.match(_SolidityParser.T__69); + this.state = 948; this.expression(0); } } catch (re) { @@ -26703,27 +26843,27 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionCallArguments() { let _localctx = new FunctionCallArgumentsContext(this._ctx, this.state); - this.enterRule(_localctx, 142, _SolidityParser.RULE_functionCallArguments); + this.enterRule(_localctx, 150, _SolidityParser.RULE_functionCallArguments); let _la; try { - this.state = 935; + this.state = 958; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__14: this.enterOuterAlt(_localctx, 1); { - this.state = 927; + this.state = 950; this.match(_SolidityParser.T__14); - this.state = 929; + this.state = 952; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 928; + this.state = 951; this.nameValueList(); } } - this.state = 931; + this.state = 954; this.match(_SolidityParser.T__16); } break; @@ -26733,24 +26873,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.T__23: case _SolidityParser.T__24: case _SolidityParser.T__29: - case _SolidityParser.T__33: - case _SolidityParser.T__35: + case _SolidityParser.T__30: case _SolidityParser.T__37: case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__54: - case _SolidityParser.T__55: - case _SolidityParser.T__56: - case _SolidityParser.T__57: - case _SolidityParser.T__58: - case _SolidityParser.T__59: - case _SolidityParser.T__60: + case _SolidityParser.T__43: + case _SolidityParser.T__45: + case _SolidityParser.T__49: + case _SolidityParser.T__61: case _SolidityParser.T__62: case _SolidityParser.T__63: case _SolidityParser.T__64: case _SolidityParser.T__65: case _SolidityParser.T__66: - case _SolidityParser.T__95: + case _SolidityParser.T__67: + case _SolidityParser.T__68: + case _SolidityParser.T__70: + case _SolidityParser.T__71: + case _SolidityParser.T__94: case _SolidityParser.Int: case _SolidityParser.Uint: case _SolidityParser.Byte: @@ -26763,18 +26902,19 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: case _SolidityParser.TypeKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: case _SolidityParser.StringLiteralFragment: this.enterOuterAlt(_localctx, 2); { - this.state = 933; + this.state = 956; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 932; + this.state = 955; this.expressionList(); } } @@ -26798,17 +26938,17 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } functionCall() { let _localctx = new FunctionCallContext(this._ctx, this.state); - this.enterRule(_localctx, 144, _SolidityParser.RULE_functionCall); + this.enterRule(_localctx, 152, _SolidityParser.RULE_functionCall); try { this.enterOuterAlt(_localctx, 1); { - this.state = 937; + this.state = 960; this.expression(0); - this.state = 938; + this.state = 961; this.match(_SolidityParser.T__22); - this.state = 939; + this.state = 962; this.functionCallArguments(); - this.state = 940; + this.state = 963; this.match(_SolidityParser.T__23); } } catch (re) { @@ -26826,28 +26966,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyBlock() { let _localctx = new AssemblyBlockContext(this._ctx, this.state); - this.enterRule(_localctx, 146, _SolidityParser.RULE_assemblyBlock); + this.enterRule(_localctx, 154, _SolidityParser.RULE_assemblyBlock); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 942; + this.state = 965; this.match(_SolidityParser.T__14); - this.state = 946; + this.state = 969; this._errHandler.sync(this); _la = this._input.LA(1); - while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__14 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__26 | 1 << _SolidityParser.T__29)) !== 0 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__42 - 36 | 1 << _SolidityParser.T__48 - 36 | 1 << _SolidityParser.T__50 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 89 & ~31) === 0 && (1 << _la - 89 & (1 << _SolidityParser.T__88 - 89 | 1 << _SolidityParser.T__91 - 89 | 1 << _SolidityParser.T__95 - 89 | 1 << _SolidityParser.DecimalNumber - 89 | 1 << _SolidityParser.HexNumber - 89 | 1 << _SolidityParser.HexLiteralFragment - 89 | 1 << _SolidityParser.BreakKeyword - 89 | 1 << _SolidityParser.ContinueKeyword - 89 | 1 << _SolidityParser.LeaveKeyword - 89 | 1 << _SolidityParser.PayableKeyword - 89)) !== 0 || (_la - 126 & ~31) === 0 && (1 << _la - 126 & (1 << _SolidityParser.ConstructorKeyword - 126 | 1 << _SolidityParser.ReceiveKeyword - 126 | 1 << _SolidityParser.Identifier - 126 | 1 << _SolidityParser.StringLiteralFragment - 126)) !== 0) { + while ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__14 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__26)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__50 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__65 - 38)) !== 0 || (_la - 88 & ~31) === 0 && (1 << _la - 88 & (1 << _SolidityParser.T__87 - 88 | 1 << _SolidityParser.T__90 - 88 | 1 << _SolidityParser.T__94 - 88 | 1 << _SolidityParser.BooleanLiteral - 88 | 1 << _SolidityParser.DecimalNumber - 88 | 1 << _SolidityParser.HexNumber - 88 | 1 << _SolidityParser.HexLiteralFragment - 88 | 1 << _SolidityParser.BreakKeyword - 88 | 1 << _SolidityParser.ContinueKeyword - 88 | 1 << _SolidityParser.LeaveKeyword - 88 | 1 << _SolidityParser.PayableKeyword - 88)) !== 0 || (_la - 124 & ~31) === 0 && (1 << _la - 124 & (1 << _SolidityParser.GlobalKeyword - 124 | 1 << _SolidityParser.ConstructorKeyword - 124 | 1 << _SolidityParser.ReceiveKeyword - 124 | 1 << _SolidityParser.Identifier - 124 | 1 << _SolidityParser.StringLiteralFragment - 124)) !== 0) { { { - this.state = 943; + this.state = 966; this.assemblyItem(); } } - this.state = 948; + this.state = 971; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 949; + this.state = 972; this.match(_SolidityParser.T__16); } } catch (re) { @@ -26865,134 +27005,127 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyItem() { let _localctx = new AssemblyItemContext(this._ctx, this.state); - this.enterRule(_localctx, 148, _SolidityParser.RULE_assemblyItem); + this.enterRule(_localctx, 156, _SolidityParser.RULE_assemblyItem); try { - this.state = 969; + this.state = 991; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 100, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 103, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 951; + this.state = 974; this.identifier(); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 952; + this.state = 975; this.assemblyBlock(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 953; + this.state = 976; this.assemblyExpression(); } break; case 4: this.enterOuterAlt(_localctx, 4); { - this.state = 954; + this.state = 977; this.assemblyLocalDefinition(); } break; case 5: this.enterOuterAlt(_localctx, 5); { - this.state = 955; + this.state = 978; this.assemblyAssignment(); } break; case 6: this.enterOuterAlt(_localctx, 6); { - this.state = 956; + this.state = 979; this.assemblyStackAssignment(); } break; case 7: this.enterOuterAlt(_localctx, 7); { - this.state = 957; + this.state = 980; this.labelDefinition(); } break; case 8: this.enterOuterAlt(_localctx, 8); { - this.state = 958; + this.state = 981; this.assemblySwitch(); } break; case 9: this.enterOuterAlt(_localctx, 9); { - this.state = 959; + this.state = 982; this.assemblyFunctionDefinition(); } break; case 10: this.enterOuterAlt(_localctx, 10); { - this.state = 960; + this.state = 983; this.assemblyFor(); } break; case 11: this.enterOuterAlt(_localctx, 11); { - this.state = 961; + this.state = 984; this.assemblyIf(); } break; case 12: this.enterOuterAlt(_localctx, 12); { - this.state = 962; + this.state = 985; this.match(_SolidityParser.BreakKeyword); } break; case 13: this.enterOuterAlt(_localctx, 13); { - this.state = 963; + this.state = 986; this.match(_SolidityParser.ContinueKeyword); } break; case 14: this.enterOuterAlt(_localctx, 14); { - this.state = 964; + this.state = 987; this.match(_SolidityParser.LeaveKeyword); } break; case 15: this.enterOuterAlt(_localctx, 15); { - this.state = 965; - this.subAssembly(); + this.state = 988; + this.numberLiteral(); } break; case 16: this.enterOuterAlt(_localctx, 16); { - this.state = 966; - this.numberLiteral(); + this.state = 989; + this.stringLiteral(); } break; case 17: this.enterOuterAlt(_localctx, 17); { - this.state = 967; - this.stringLiteral(); - } - break; - case 18: - this.enterOuterAlt(_localctx, 18); - { - this.state = 968; + this.state = 990; this.hexLiteral(); } break; @@ -27012,29 +27145,29 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyExpression() { let _localctx = new AssemblyExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 150, _SolidityParser.RULE_assemblyExpression); + this.enterRule(_localctx, 158, _SolidityParser.RULE_assemblyExpression); try { - this.state = 974; + this.state = 996; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 101, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 104, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 971; + this.state = 993; this.assemblyCall(); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 972; + this.state = 994; this.assemblyLiteral(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 973; + this.state = 995; this.assemblyMember(); } break; @@ -27054,15 +27187,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyMember() { let _localctx = new AssemblyMemberContext(this._ctx, this.state); - this.enterRule(_localctx, 152, _SolidityParser.RULE_assemblyMember); + this.enterRule(_localctx, 160, _SolidityParser.RULE_assemblyMember); try { this.enterOuterAlt(_localctx, 1); { - this.state = 976; + this.state = 998; this.identifier(); - this.state = 977; - this.match(_SolidityParser.T__36); - this.state = 978; + this.state = 999; + this.match(_SolidityParser.T__44); + this.state = 1e3; this.identifier(); } } catch (re) { @@ -27080,83 +27213,72 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyCall() { let _localctx = new AssemblyCallContext(this._ctx, this.state); - this.enterRule(_localctx, 154, _SolidityParser.RULE_assemblyCall); + this.enterRule(_localctx, 162, _SolidityParser.RULE_assemblyCall); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 984; + this.state = 1006; this._errHandler.sync(this); - switch (this._input.LA(1)) { - case _SolidityParser.T__50: + switch (this.interpreter.adaptivePredict(this._input, 105, this._ctx)) { + case 1: { - this.state = 980; - this.match(_SolidityParser.T__50); + this.state = 1002; + this.match(_SolidityParser.T__58); } break; - case _SolidityParser.T__35: + case 2: { - this.state = 981; - this.match(_SolidityParser.T__35); + this.state = 1003; + this.match(_SolidityParser.T__43); } break; - case _SolidityParser.T__57: + case 3: { - this.state = 982; - this.match(_SolidityParser.T__57); + this.state = 1004; + this.match(_SolidityParser.T__65); } break; - case _SolidityParser.T__13: - case _SolidityParser.T__24: - case _SolidityParser.T__41: - case _SolidityParser.T__53: - case _SolidityParser.T__95: - case _SolidityParser.LeaveKeyword: - case _SolidityParser.PayableKeyword: - case _SolidityParser.ConstructorKeyword: - case _SolidityParser.ReceiveKeyword: - case _SolidityParser.Identifier: + case 4: { - this.state = 983; + this.state = 1005; this.identifier(); } break; - default: - throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 998; + this.state = 1020; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 105, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 108, this._ctx)) { case 1: { - this.state = 986; + this.state = 1008; this.match(_SolidityParser.T__22); - this.state = 988; + this.state = 1010; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 36 & ~31) === 0 && (1 << _la - 36 & (1 << _SolidityParser.T__35 - 36 | 1 << _SolidityParser.T__41 - 36 | 1 << _SolidityParser.T__50 - 36 | 1 << _SolidityParser.T__53 - 36 | 1 << _SolidityParser.T__57 - 36)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__58 - 44 | 1 << _SolidityParser.T__61 - 44 | 1 << _SolidityParser.T__65 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.BooleanLiteral - 95 | 1 << _SolidityParser.DecimalNumber - 95 | 1 << _SolidityParser.HexNumber - 95 | 1 << _SolidityParser.HexLiteralFragment - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || (_la - 127 & ~31) === 0 && (1 << _la - 127 & (1 << _SolidityParser.ReceiveKeyword - 127 | 1 << _SolidityParser.Identifier - 127 | 1 << _SolidityParser.StringLiteralFragment - 127)) !== 0) { { - this.state = 987; + this.state = 1009; this.assemblyExpression(); } } - this.state = 994; + this.state = 1016; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 990; + this.state = 1012; this.match(_SolidityParser.T__15); - this.state = 991; + this.state = 1013; this.assemblyExpression(); } } - this.state = 996; + this.state = 1018; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 997; + this.state = 1019; this.match(_SolidityParser.T__23); } break; @@ -27177,23 +27299,23 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyLocalDefinition() { let _localctx = new AssemblyLocalDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 156, _SolidityParser.RULE_assemblyLocalDefinition); + this.enterRule(_localctx, 164, _SolidityParser.RULE_assemblyLocalDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1e3; - this.match(_SolidityParser.T__88); - this.state = 1001; + this.state = 1022; + this.match(_SolidityParser.T__87); + this.state = 1023; this.assemblyIdentifierOrList(); - this.state = 1004; + this.state = 1026; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__89) { + if (_la === _SolidityParser.T__88) { { - this.state = 1002; - this.match(_SolidityParser.T__89); - this.state = 1003; + this.state = 1024; + this.match(_SolidityParser.T__88); + this.state = 1025; this.assemblyExpression(); } } @@ -27213,15 +27335,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyAssignment() { let _localctx = new AssemblyAssignmentContext(this._ctx, this.state); - this.enterRule(_localctx, 158, _SolidityParser.RULE_assemblyAssignment); + this.enterRule(_localctx, 166, _SolidityParser.RULE_assemblyAssignment); try { this.enterOuterAlt(_localctx, 1); { - this.state = 1006; + this.state = 1028; this.assemblyIdentifierOrList(); - this.state = 1007; - this.match(_SolidityParser.T__89); - this.state = 1008; + this.state = 1029; + this.match(_SolidityParser.T__88); + this.state = 1030; this.assemblyExpression(); } } catch (re) { @@ -27239,33 +27361,40 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyIdentifierOrList() { let _localctx = new AssemblyIdentifierOrListContext(this._ctx, this.state); - this.enterRule(_localctx, 160, _SolidityParser.RULE_assemblyIdentifierOrList); + this.enterRule(_localctx, 168, _SolidityParser.RULE_assemblyIdentifierOrList); try { - this.state = 1016; + this.state = 1039; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 107, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 110, this._ctx)) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 1010; + this.state = 1032; this.identifier(); } break; case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 1011; + this.state = 1033; this.assemblyMember(); } break; case 3: this.enterOuterAlt(_localctx, 3); { - this.state = 1012; + this.state = 1034; + this.assemblyIdentifierList(); + } + break; + case 4: + this.enterOuterAlt(_localctx, 4); + { + this.state = 1035; this.match(_SolidityParser.T__22); - this.state = 1013; + this.state = 1036; this.assemblyIdentifierList(); - this.state = 1014; + this.state = 1037; this.match(_SolidityParser.T__23); } break; @@ -27285,26 +27414,26 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyIdentifierList() { let _localctx = new AssemblyIdentifierListContext(this._ctx, this.state); - this.enterRule(_localctx, 162, _SolidityParser.RULE_assemblyIdentifierList); + this.enterRule(_localctx, 170, _SolidityParser.RULE_assemblyIdentifierList); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1018; + this.state = 1041; this.identifier(); - this.state = 1023; + this.state = 1046; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 1019; + this.state = 1042; this.match(_SolidityParser.T__15); - this.state = 1020; + this.state = 1043; this.identifier(); } } - this.state = 1025; + this.state = 1048; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -27324,15 +27453,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyStackAssignment() { let _localctx = new AssemblyStackAssignmentContext(this._ctx, this.state); - this.enterRule(_localctx, 164, _SolidityParser.RULE_assemblyStackAssignment); + this.enterRule(_localctx, 172, _SolidityParser.RULE_assemblyStackAssignment); try { this.enterOuterAlt(_localctx, 1); { - this.state = 1026; + this.state = 1049; this.assemblyExpression(); - this.state = 1027; - this.match(_SolidityParser.T__90); - this.state = 1028; + this.state = 1050; + this.match(_SolidityParser.T__89); + this.state = 1051; this.identifier(); } } catch (re) { @@ -27350,14 +27479,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } labelDefinition() { let _localctx = new LabelDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 166, _SolidityParser.RULE_labelDefinition); + this.enterRule(_localctx, 174, _SolidityParser.RULE_labelDefinition); try { this.enterOuterAlt(_localctx, 1); { - this.state = 1030; + this.state = 1053; this.identifier(); - this.state = 1031; - this.match(_SolidityParser.T__61); + this.state = 1054; + this.match(_SolidityParser.T__69); } } catch (re) { if (re instanceof import_RecognitionException.RecognitionException) { @@ -27374,26 +27503,26 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblySwitch() { let _localctx = new AssemblySwitchContext(this._ctx, this.state); - this.enterRule(_localctx, 168, _SolidityParser.RULE_assemblySwitch); + this.enterRule(_localctx, 176, _SolidityParser.RULE_assemblySwitch); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1033; - this.match(_SolidityParser.T__91); - this.state = 1034; + this.state = 1056; + this.match(_SolidityParser.T__90); + this.state = 1057; this.assemblyExpression(); - this.state = 1038; + this.state = 1061; this._errHandler.sync(this); _la = this._input.LA(1); - while (_la === _SolidityParser.T__92 || _la === _SolidityParser.T__93) { + while (_la === _SolidityParser.T__91 || _la === _SolidityParser.T__92) { { { - this.state = 1035; + this.state = 1058; this.assemblyCase(); } } - this.state = 1040; + this.state = 1063; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -27413,28 +27542,28 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyCase() { let _localctx = new AssemblyCaseContext(this._ctx, this.state); - this.enterRule(_localctx, 170, _SolidityParser.RULE_assemblyCase); + this.enterRule(_localctx, 178, _SolidityParser.RULE_assemblyCase); try { - this.state = 1047; + this.state = 1070; this._errHandler.sync(this); switch (this._input.LA(1)) { - case _SolidityParser.T__92: + case _SolidityParser.T__91: this.enterOuterAlt(_localctx, 1); { - this.state = 1041; - this.match(_SolidityParser.T__92); - this.state = 1042; + this.state = 1064; + this.match(_SolidityParser.T__91); + this.state = 1065; this.assemblyLiteral(); - this.state = 1043; + this.state = 1066; this.assemblyBlock(); } break; - case _SolidityParser.T__93: + case _SolidityParser.T__92: this.enterOuterAlt(_localctx, 2); { - this.state = 1045; - this.match(_SolidityParser.T__93); - this.state = 1046; + this.state = 1068; + this.match(_SolidityParser.T__92); + this.state = 1069; this.assemblyBlock(); } break; @@ -27456,38 +27585,38 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyFunctionDefinition() { let _localctx = new AssemblyFunctionDefinitionContext(this._ctx, this.state); - this.enterRule(_localctx, 172, _SolidityParser.RULE_assemblyFunctionDefinition); + this.enterRule(_localctx, 180, _SolidityParser.RULE_assemblyFunctionDefinition); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1049; - this.match(_SolidityParser.T__29); - this.state = 1050; + this.state = 1072; + this.match(_SolidityParser.T__37); + this.state = 1073; this.identifier(); - this.state = 1051; + this.state = 1074; this.match(_SolidityParser.T__22); - this.state = 1053; + this.state = 1076; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { + if (_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier) { { - this.state = 1052; + this.state = 1075; this.assemblyIdentifierList(); } } - this.state = 1055; + this.state = 1078; this.match(_SolidityParser.T__23); - this.state = 1057; + this.state = 1080; this._errHandler.sync(this); _la = this._input.LA(1); - if (_la === _SolidityParser.T__94) { + if (_la === _SolidityParser.T__93) { { - this.state = 1056; + this.state = 1079; this.assemblyFunctionReturns(); } } - this.state = 1059; + this.state = 1082; this.assemblyBlock(); } } catch (re) { @@ -27505,14 +27634,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyFunctionReturns() { let _localctx = new AssemblyFunctionReturnsContext(this._ctx, this.state); - this.enterRule(_localctx, 174, _SolidityParser.RULE_assemblyFunctionReturns); + this.enterRule(_localctx, 182, _SolidityParser.RULE_assemblyFunctionReturns); try { this.enterOuterAlt(_localctx, 1); { { - this.state = 1061; - this.match(_SolidityParser.T__94); - this.state = 1062; + this.state = 1084; + this.match(_SolidityParser.T__93); + this.state = 1085; this.assemblyIdentifierList(); } } @@ -27531,83 +27660,87 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyFor() { let _localctx = new AssemblyForContext(this._ctx, this.state); - this.enterRule(_localctx, 176, _SolidityParser.RULE_assemblyFor); + this.enterRule(_localctx, 184, _SolidityParser.RULE_assemblyFor); try { this.enterOuterAlt(_localctx, 1); { - this.state = 1064; + this.state = 1087; this.match(_SolidityParser.T__26); - this.state = 1067; + this.state = 1090; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__14: { - this.state = 1065; + this.state = 1088; this.assemblyBlock(); } break; case _SolidityParser.T__13: case _SolidityParser.T__24: - case _SolidityParser.T__35: - case _SolidityParser.T__41: - case _SolidityParser.T__50: - case _SolidityParser.T__53: - case _SolidityParser.T__57: - case _SolidityParser.T__95: + case _SolidityParser.T__43: + case _SolidityParser.T__49: + case _SolidityParser.T__58: + case _SolidityParser.T__61: + case _SolidityParser.T__65: + case _SolidityParser.T__94: + case _SolidityParser.BooleanLiteral: case _SolidityParser.DecimalNumber: case _SolidityParser.HexNumber: case _SolidityParser.HexLiteralFragment: case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: case _SolidityParser.StringLiteralFragment: { - this.state = 1066; + this.state = 1089; this.assemblyExpression(); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 1069; + this.state = 1092; this.assemblyExpression(); - this.state = 1072; + this.state = 1095; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__14: { - this.state = 1070; + this.state = 1093; this.assemblyBlock(); } break; case _SolidityParser.T__13: case _SolidityParser.T__24: - case _SolidityParser.T__35: - case _SolidityParser.T__41: - case _SolidityParser.T__50: - case _SolidityParser.T__53: - case _SolidityParser.T__57: - case _SolidityParser.T__95: + case _SolidityParser.T__43: + case _SolidityParser.T__49: + case _SolidityParser.T__58: + case _SolidityParser.T__61: + case _SolidityParser.T__65: + case _SolidityParser.T__94: + case _SolidityParser.BooleanLiteral: case _SolidityParser.DecimalNumber: case _SolidityParser.HexNumber: case _SolidityParser.HexLiteralFragment: case _SolidityParser.LeaveKeyword: case _SolidityParser.PayableKeyword: + case _SolidityParser.GlobalKeyword: case _SolidityParser.ConstructorKeyword: case _SolidityParser.ReceiveKeyword: case _SolidityParser.Identifier: case _SolidityParser.StringLiteralFragment: { - this.state = 1071; + this.state = 1094; this.assemblyExpression(); } break; default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 1074; + this.state = 1097; this.assemblyBlock(); } } catch (re) { @@ -27625,15 +27758,15 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyIf() { let _localctx = new AssemblyIfContext(this._ctx, this.state); - this.enterRule(_localctx, 178, _SolidityParser.RULE_assemblyIf); + this.enterRule(_localctx, 186, _SolidityParser.RULE_assemblyIf); try { this.enterOuterAlt(_localctx, 1); { - this.state = 1076; - this.match(_SolidityParser.T__42); - this.state = 1077; + this.state = 1099; + this.match(_SolidityParser.T__50); + this.state = 1100; this.assemblyExpression(); - this.state = 1078; + this.state = 1101; this.assemblyBlock(); } } catch (re) { @@ -27651,39 +27784,46 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } assemblyLiteral() { let _localctx = new AssemblyLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 180, _SolidityParser.RULE_assemblyLiteral); + this.enterRule(_localctx, 188, _SolidityParser.RULE_assemblyLiteral); try { - this.state = 1084; + this.state = 1108; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.StringLiteralFragment: this.enterOuterAlt(_localctx, 1); { - this.state = 1080; + this.state = 1103; this.stringLiteral(); } break; case _SolidityParser.DecimalNumber: this.enterOuterAlt(_localctx, 2); { - this.state = 1081; + this.state = 1104; this.match(_SolidityParser.DecimalNumber); } break; case _SolidityParser.HexNumber: this.enterOuterAlt(_localctx, 3); { - this.state = 1082; + this.state = 1105; this.match(_SolidityParser.HexNumber); } break; case _SolidityParser.HexLiteralFragment: this.enterOuterAlt(_localctx, 4); { - this.state = 1083; + this.state = 1106; this.hexLiteral(); } break; + case _SolidityParser.BooleanLiteral: + this.enterOuterAlt(_localctx, 5); + { + this.state = 1107; + this.match(_SolidityParser.BooleanLiteral); + } + break; default: throw new import_NoViableAltException.NoViableAltException(this); } @@ -27700,115 +27840,89 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } return _localctx; } - subAssembly() { - let _localctx = new SubAssemblyContext(this._ctx, this.state); - this.enterRule(_localctx, 182, _SolidityParser.RULE_subAssembly); - try { - this.enterOuterAlt(_localctx, 1); - { - this.state = 1086; - this.match(_SolidityParser.T__48); - this.state = 1087; - this.identifier(); - this.state = 1088; - this.assemblyBlock(); - } - } catch (re) { - if (re instanceof import_RecognitionException.RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } finally { - this.exitRule(); - } - return _localctx; - } tupleExpression() { let _localctx = new TupleExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 184, _SolidityParser.RULE_tupleExpression); + this.enterRule(_localctx, 190, _SolidityParser.RULE_tupleExpression); let _la; try { - this.state = 1116; + this.state = 1136; this._errHandler.sync(this); switch (this._input.LA(1)) { case _SolidityParser.T__22: this.enterOuterAlt(_localctx, 1); { - this.state = 1090; + this.state = 1110; this.match(_SolidityParser.T__22); { - this.state = 1092; + this.state = 1112; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 1091; + this.state = 1111; this.expression(0); } } - this.state = 1100; + this.state = 1120; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 1094; + this.state = 1114; this.match(_SolidityParser.T__15); - this.state = 1096; + this.state = 1116; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 1095; + this.state = 1115; this.expression(0); } } } } - this.state = 1102; + this.state = 1122; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 1103; + this.state = 1123; this.match(_SolidityParser.T__23); } break; - case _SolidityParser.T__33: + case _SolidityParser.T__41: this.enterOuterAlt(_localctx, 2); { - this.state = 1104; - this.match(_SolidityParser.T__33); - this.state = 1113; + this.state = 1124; + this.match(_SolidityParser.T__41); + this.state = 1133; this._errHandler.sync(this); _la = this._input.LA(1); - if ((_la - 6 & ~31) === 0 && (1 << _la - 6 & (1 << _SolidityParser.T__5 - 6 | 1 << _SolidityParser.T__13 - 6 | 1 << _SolidityParser.T__22 - 6 | 1 << _SolidityParser.T__24 - 6 | 1 << _SolidityParser.T__29 - 6 | 1 << _SolidityParser.T__33 - 6 | 1 << _SolidityParser.T__35 - 6)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__53 - 38 | 1 << _SolidityParser.T__54 - 38 | 1 << _SolidityParser.T__55 - 38 | 1 << _SolidityParser.T__56 - 38 | 1 << _SolidityParser.T__57 - 38 | 1 << _SolidityParser.T__58 - 38 | 1 << _SolidityParser.T__59 - 38 | 1 << _SolidityParser.T__60 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38)) !== 0 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.Int - 96 | 1 << _SolidityParser.Uint - 96 | 1 << _SolidityParser.Byte - 96 | 1 << _SolidityParser.Fixed - 96 | 1 << _SolidityParser.Ufixed - 96 | 1 << _SolidityParser.BooleanLiteral - 96 | 1 << _SolidityParser.DecimalNumber - 96 | 1 << _SolidityParser.HexNumber - 96 | 1 << _SolidityParser.HexLiteralFragment - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.TypeKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || (_la - 128 & ~31) === 0 && (1 << _la - 128 & (1 << _SolidityParser.ReceiveKeyword - 128 | 1 << _SolidityParser.Identifier - 128 | 1 << _SolidityParser.StringLiteralFragment - 128)) !== 0) { + if ((_la & ~31) === 0 && (1 << _la & (1 << _SolidityParser.T__5 | 1 << _SolidityParser.T__13 | 1 << _SolidityParser.T__22 | 1 << _SolidityParser.T__24 | 1 << _SolidityParser.T__29 | 1 << _SolidityParser.T__30)) !== 0 || (_la - 38 & ~31) === 0 && (1 << _la - 38 & (1 << _SolidityParser.T__37 - 38 | 1 << _SolidityParser.T__41 - 38 | 1 << _SolidityParser.T__43 - 38 | 1 << _SolidityParser.T__45 - 38 | 1 << _SolidityParser.T__49 - 38 | 1 << _SolidityParser.T__61 - 38 | 1 << _SolidityParser.T__62 - 38 | 1 << _SolidityParser.T__63 - 38 | 1 << _SolidityParser.T__64 - 38 | 1 << _SolidityParser.T__65 - 38 | 1 << _SolidityParser.T__66 - 38 | 1 << _SolidityParser.T__67 - 38 | 1 << _SolidityParser.T__68 - 38)) !== 0 || (_la - 71 & ~31) === 0 && (1 << _la - 71 & (1 << _SolidityParser.T__70 - 71 | 1 << _SolidityParser.T__71 - 71 | 1 << _SolidityParser.T__94 - 71 | 1 << _SolidityParser.Int - 71 | 1 << _SolidityParser.Uint - 71 | 1 << _SolidityParser.Byte - 71 | 1 << _SolidityParser.Fixed - 71 | 1 << _SolidityParser.Ufixed - 71 | 1 << _SolidityParser.BooleanLiteral - 71)) !== 0 || (_la - 103 & ~31) === 0 && (1 << _la - 103 & (1 << _SolidityParser.DecimalNumber - 103 | 1 << _SolidityParser.HexNumber - 103 | 1 << _SolidityParser.HexLiteralFragment - 103 | 1 << _SolidityParser.LeaveKeyword - 103 | 1 << _SolidityParser.PayableKeyword - 103 | 1 << _SolidityParser.TypeKeyword - 103 | 1 << _SolidityParser.GlobalKeyword - 103 | 1 << _SolidityParser.ConstructorKeyword - 103 | 1 << _SolidityParser.ReceiveKeyword - 103 | 1 << _SolidityParser.Identifier - 103 | 1 << _SolidityParser.StringLiteralFragment - 103)) !== 0) { { - this.state = 1105; + this.state = 1125; this.expression(0); - this.state = 1110; + this.state = 1130; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 1106; + this.state = 1126; this.match(_SolidityParser.T__15); - this.state = 1107; + this.state = 1127; this.expression(0); } } - this.state = 1112; + this.state = 1132; this._errHandler.sync(this); _la = this._input.LA(1); } } } - this.state = 1115; - this.match(_SolidityParser.T__34); + this.state = 1135; + this.match(_SolidityParser.T__42); } break; default: @@ -27829,12 +27943,12 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } numberLiteral() { let _localctx = new NumberLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 186, _SolidityParser.RULE_numberLiteral); + this.enterRule(_localctx, 192, _SolidityParser.RULE_numberLiteral); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1118; + this.state = 1138; _la = this._input.LA(1); if (!(_la === _SolidityParser.DecimalNumber || _la === _SolidityParser.HexNumber)) { this._errHandler.recoverInline(this); @@ -27845,12 +27959,12 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv this._errHandler.reportMatch(this); this.consume(); } - this.state = 1120; + this.state = 1140; this._errHandler.sync(this); - switch (this.interpreter.adaptivePredict(this._input, 122, this._ctx)) { + switch (this.interpreter.adaptivePredict(this._input, 125, this._ctx)) { case 1: { - this.state = 1119; + this.state = 1139; this.match(_SolidityParser.NumberUnit); } break; @@ -27871,14 +27985,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } identifier() { let _localctx = new IdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 188, _SolidityParser.RULE_identifier); + this.enterRule(_localctx, 194, _SolidityParser.RULE_identifier); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1122; + this.state = 1142; _la = this._input.LA(1); - if (!(_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || _la === _SolidityParser.T__41 || _la === _SolidityParser.T__53 || (_la - 96 & ~31) === 0 && (1 << _la - 96 & (1 << _SolidityParser.T__95 - 96 | 1 << _SolidityParser.LeaveKeyword - 96 | 1 << _SolidityParser.PayableKeyword - 96 | 1 << _SolidityParser.ConstructorKeyword - 96)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier)) { + if (!(_la === _SolidityParser.T__13 || _la === _SolidityParser.T__24 || (_la - 44 & ~31) === 0 && (1 << _la - 44 & (1 << _SolidityParser.T__43 - 44 | 1 << _SolidityParser.T__49 - 44 | 1 << _SolidityParser.T__61 - 44)) !== 0 || (_la - 95 & ~31) === 0 && (1 << _la - 95 & (1 << _SolidityParser.T__94 - 95 | 1 << _SolidityParser.LeaveKeyword - 95 | 1 << _SolidityParser.PayableKeyword - 95 | 1 << _SolidityParser.GlobalKeyword - 95 | 1 << _SolidityParser.ConstructorKeyword - 95)) !== 0 || _la === _SolidityParser.ReceiveKeyword || _la === _SolidityParser.Identifier)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === import_Token.Token.EOF) { @@ -27903,12 +28017,12 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } hexLiteral() { let _localctx = new HexLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 190, _SolidityParser.RULE_hexLiteral); + this.enterRule(_localctx, 196, _SolidityParser.RULE_hexLiteral); try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 1125; + this.state = 1145; this._errHandler.sync(this); _alt = 1; do { @@ -27916,7 +28030,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case 1: { { - this.state = 1124; + this.state = 1144; this.match(_SolidityParser.HexLiteralFragment); } } @@ -27924,9 +28038,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 1127; + this.state = 1147; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 123, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 126, this._ctx); } while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER); } } catch (re) { @@ -27944,39 +28058,39 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } overrideSpecifier() { let _localctx = new OverrideSpecifierContext(this._ctx, this.state); - this.enterRule(_localctx, 192, _SolidityParser.RULE_overrideSpecifier); + this.enterRule(_localctx, 198, _SolidityParser.RULE_overrideSpecifier); let _la; try { this.enterOuterAlt(_localctx, 1); { - this.state = 1129; - this.match(_SolidityParser.T__96); - this.state = 1141; + this.state = 1149; + this.match(_SolidityParser.T__95); + this.state = 1161; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === _SolidityParser.T__22) { { - this.state = 1130; + this.state = 1150; this.match(_SolidityParser.T__22); - this.state = 1131; + this.state = 1151; this.userDefinedTypeName(); - this.state = 1136; + this.state = 1156; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === _SolidityParser.T__15) { { { - this.state = 1132; + this.state = 1152; this.match(_SolidityParser.T__15); - this.state = 1133; + this.state = 1153; this.userDefinedTypeName(); } } - this.state = 1138; + this.state = 1158; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1139; + this.state = 1159; this.match(_SolidityParser.T__23); } } @@ -27996,12 +28110,12 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } stringLiteral() { let _localctx = new StringLiteralContext(this._ctx, this.state); - this.enterRule(_localctx, 194, _SolidityParser.RULE_stringLiteral); + this.enterRule(_localctx, 200, _SolidityParser.RULE_stringLiteral); try { let _alt; this.enterOuterAlt(_localctx, 1); { - this.state = 1144; + this.state = 1164; this._errHandler.sync(this); _alt = 1; do { @@ -28009,7 +28123,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv case 1: { { - this.state = 1143; + this.state = 1163; this.match(_SolidityParser.StringLiteralFragment); } } @@ -28017,9 +28131,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv default: throw new import_NoViableAltException.NoViableAltException(this); } - this.state = 1146; + this.state = 1166; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 126, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 129, this._ctx); } while (_alt !== 2 && _alt !== import_ATN.ATN.INVALID_ALT_NUMBER); } } catch (re) { @@ -28037,9 +28151,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } sempred(_localctx, ruleIndex, predIndex) { switch (ruleIndex) { - case 36: + case 38: return this.typeName_sempred(_localctx, predIndex); - case 66: + case 70: return this.expression_sempred(_localctx, predIndex); } return true; @@ -28198,44 +28312,43 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv SolidityParser.T__93 = 94; SolidityParser.T__94 = 95; SolidityParser.T__95 = 96; - SolidityParser.T__96 = 97; - SolidityParser.Int = 98; - SolidityParser.Uint = 99; - SolidityParser.Byte = 100; - SolidityParser.Fixed = 101; - SolidityParser.Ufixed = 102; - SolidityParser.BooleanLiteral = 103; - SolidityParser.DecimalNumber = 104; - SolidityParser.HexNumber = 105; - SolidityParser.NumberUnit = 106; - SolidityParser.HexLiteralFragment = 107; - SolidityParser.ReservedKeyword = 108; - SolidityParser.AnonymousKeyword = 109; - SolidityParser.BreakKeyword = 110; - SolidityParser.ConstantKeyword = 111; - SolidityParser.ImmutableKeyword = 112; - SolidityParser.ContinueKeyword = 113; - SolidityParser.LeaveKeyword = 114; - SolidityParser.ExternalKeyword = 115; - SolidityParser.IndexedKeyword = 116; - SolidityParser.InternalKeyword = 117; - SolidityParser.PayableKeyword = 118; - SolidityParser.PrivateKeyword = 119; - SolidityParser.PublicKeyword = 120; - SolidityParser.VirtualKeyword = 121; - SolidityParser.PureKeyword = 122; - SolidityParser.TypeKeyword = 123; - SolidityParser.ViewKeyword = 124; - SolidityParser.GlobalKeyword = 125; - SolidityParser.ConstructorKeyword = 126; - SolidityParser.FallbackKeyword = 127; - SolidityParser.ReceiveKeyword = 128; - SolidityParser.Identifier = 129; - SolidityParser.StringLiteralFragment = 130; - SolidityParser.VersionLiteral = 131; - SolidityParser.WS = 132; - SolidityParser.COMMENT = 133; - SolidityParser.LINE_COMMENT = 134; + SolidityParser.Int = 97; + SolidityParser.Uint = 98; + SolidityParser.Byte = 99; + SolidityParser.Fixed = 100; + SolidityParser.Ufixed = 101; + SolidityParser.BooleanLiteral = 102; + SolidityParser.DecimalNumber = 103; + SolidityParser.HexNumber = 104; + SolidityParser.NumberUnit = 105; + SolidityParser.HexLiteralFragment = 106; + SolidityParser.ReservedKeyword = 107; + SolidityParser.AnonymousKeyword = 108; + SolidityParser.BreakKeyword = 109; + SolidityParser.ConstantKeyword = 110; + SolidityParser.ImmutableKeyword = 111; + SolidityParser.ContinueKeyword = 112; + SolidityParser.LeaveKeyword = 113; + SolidityParser.ExternalKeyword = 114; + SolidityParser.IndexedKeyword = 115; + SolidityParser.InternalKeyword = 116; + SolidityParser.PayableKeyword = 117; + SolidityParser.PrivateKeyword = 118; + SolidityParser.PublicKeyword = 119; + SolidityParser.VirtualKeyword = 120; + SolidityParser.PureKeyword = 121; + SolidityParser.TypeKeyword = 122; + SolidityParser.ViewKeyword = 123; + SolidityParser.GlobalKeyword = 124; + SolidityParser.ConstructorKeyword = 125; + SolidityParser.FallbackKeyword = 126; + SolidityParser.ReceiveKeyword = 127; + SolidityParser.Identifier = 128; + SolidityParser.StringLiteralFragment = 129; + SolidityParser.VersionLiteral = 130; + SolidityParser.WS = 131; + SolidityParser.COMMENT = 132; + SolidityParser.LINE_COMMENT = 133; SolidityParser.RULE_sourceUnit = 0; SolidityParser.RULE_pragmaDirective = 1; SolidityParser.RULE_pragmaName = 2; @@ -28255,85 +28368,88 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv SolidityParser.RULE_typeDefinition = 16; SolidityParser.RULE_usingForDeclaration = 17; SolidityParser.RULE_usingForObject = 18; - SolidityParser.RULE_structDefinition = 19; - SolidityParser.RULE_modifierDefinition = 20; - SolidityParser.RULE_modifierInvocation = 21; - SolidityParser.RULE_functionDefinition = 22; - SolidityParser.RULE_functionDescriptor = 23; - SolidityParser.RULE_returnParameters = 24; - SolidityParser.RULE_modifierList = 25; - SolidityParser.RULE_eventDefinition = 26; - SolidityParser.RULE_enumValue = 27; - SolidityParser.RULE_enumDefinition = 28; - SolidityParser.RULE_parameterList = 29; - SolidityParser.RULE_parameter = 30; - SolidityParser.RULE_eventParameterList = 31; - SolidityParser.RULE_eventParameter = 32; - SolidityParser.RULE_functionTypeParameterList = 33; - SolidityParser.RULE_functionTypeParameter = 34; - SolidityParser.RULE_variableDeclaration = 35; - SolidityParser.RULE_typeName = 36; - SolidityParser.RULE_userDefinedTypeName = 37; - SolidityParser.RULE_mappingKey = 38; - SolidityParser.RULE_mapping = 39; - SolidityParser.RULE_functionTypeName = 40; - SolidityParser.RULE_storageLocation = 41; - SolidityParser.RULE_stateMutability = 42; - SolidityParser.RULE_block = 43; - SolidityParser.RULE_statement = 44; - SolidityParser.RULE_expressionStatement = 45; - SolidityParser.RULE_ifStatement = 46; - SolidityParser.RULE_tryStatement = 47; - SolidityParser.RULE_catchClause = 48; - SolidityParser.RULE_whileStatement = 49; - SolidityParser.RULE_simpleStatement = 50; - SolidityParser.RULE_uncheckedStatement = 51; - SolidityParser.RULE_forStatement = 52; - SolidityParser.RULE_inlineAssemblyStatement = 53; - SolidityParser.RULE_inlineAssemblyStatementFlag = 54; - SolidityParser.RULE_doWhileStatement = 55; - SolidityParser.RULE_continueStatement = 56; - SolidityParser.RULE_breakStatement = 57; - SolidityParser.RULE_returnStatement = 58; - SolidityParser.RULE_throwStatement = 59; - SolidityParser.RULE_emitStatement = 60; - SolidityParser.RULE_revertStatement = 61; - SolidityParser.RULE_variableDeclarationStatement = 62; - SolidityParser.RULE_variableDeclarationList = 63; - SolidityParser.RULE_identifierList = 64; - SolidityParser.RULE_elementaryTypeName = 65; - SolidityParser.RULE_expression = 66; - SolidityParser.RULE_primaryExpression = 67; - SolidityParser.RULE_expressionList = 68; - SolidityParser.RULE_nameValueList = 69; - SolidityParser.RULE_nameValue = 70; - SolidityParser.RULE_functionCallArguments = 71; - SolidityParser.RULE_functionCall = 72; - SolidityParser.RULE_assemblyBlock = 73; - SolidityParser.RULE_assemblyItem = 74; - SolidityParser.RULE_assemblyExpression = 75; - SolidityParser.RULE_assemblyMember = 76; - SolidityParser.RULE_assemblyCall = 77; - SolidityParser.RULE_assemblyLocalDefinition = 78; - SolidityParser.RULE_assemblyAssignment = 79; - SolidityParser.RULE_assemblyIdentifierOrList = 80; - SolidityParser.RULE_assemblyIdentifierList = 81; - SolidityParser.RULE_assemblyStackAssignment = 82; - SolidityParser.RULE_labelDefinition = 83; - SolidityParser.RULE_assemblySwitch = 84; - SolidityParser.RULE_assemblyCase = 85; - SolidityParser.RULE_assemblyFunctionDefinition = 86; - SolidityParser.RULE_assemblyFunctionReturns = 87; - SolidityParser.RULE_assemblyFor = 88; - SolidityParser.RULE_assemblyIf = 89; - SolidityParser.RULE_assemblyLiteral = 90; - SolidityParser.RULE_subAssembly = 91; - SolidityParser.RULE_tupleExpression = 92; - SolidityParser.RULE_numberLiteral = 93; - SolidityParser.RULE_identifier = 94; - SolidityParser.RULE_hexLiteral = 95; - SolidityParser.RULE_overrideSpecifier = 96; - SolidityParser.RULE_stringLiteral = 97; + SolidityParser.RULE_usingForObjectDirective = 19; + SolidityParser.RULE_userDefinableOperators = 20; + SolidityParser.RULE_structDefinition = 21; + SolidityParser.RULE_modifierDefinition = 22; + SolidityParser.RULE_modifierInvocation = 23; + SolidityParser.RULE_functionDefinition = 24; + SolidityParser.RULE_functionDescriptor = 25; + SolidityParser.RULE_returnParameters = 26; + SolidityParser.RULE_modifierList = 27; + SolidityParser.RULE_eventDefinition = 28; + SolidityParser.RULE_enumValue = 29; + SolidityParser.RULE_enumDefinition = 30; + SolidityParser.RULE_parameterList = 31; + SolidityParser.RULE_parameter = 32; + SolidityParser.RULE_eventParameterList = 33; + SolidityParser.RULE_eventParameter = 34; + SolidityParser.RULE_functionTypeParameterList = 35; + SolidityParser.RULE_functionTypeParameter = 36; + SolidityParser.RULE_variableDeclaration = 37; + SolidityParser.RULE_typeName = 38; + SolidityParser.RULE_userDefinedTypeName = 39; + SolidityParser.RULE_mappingKey = 40; + SolidityParser.RULE_mapping = 41; + SolidityParser.RULE_mappingKeyName = 42; + SolidityParser.RULE_mappingValueName = 43; + SolidityParser.RULE_functionTypeName = 44; + SolidityParser.RULE_storageLocation = 45; + SolidityParser.RULE_stateMutability = 46; + SolidityParser.RULE_block = 47; + SolidityParser.RULE_statement = 48; + SolidityParser.RULE_expressionStatement = 49; + SolidityParser.RULE_ifStatement = 50; + SolidityParser.RULE_tryStatement = 51; + SolidityParser.RULE_catchClause = 52; + SolidityParser.RULE_whileStatement = 53; + SolidityParser.RULE_simpleStatement = 54; + SolidityParser.RULE_uncheckedStatement = 55; + SolidityParser.RULE_forStatement = 56; + SolidityParser.RULE_inlineAssemblyStatement = 57; + SolidityParser.RULE_inlineAssemblyStatementFlag = 58; + SolidityParser.RULE_doWhileStatement = 59; + SolidityParser.RULE_continueStatement = 60; + SolidityParser.RULE_breakStatement = 61; + SolidityParser.RULE_returnStatement = 62; + SolidityParser.RULE_throwStatement = 63; + SolidityParser.RULE_emitStatement = 64; + SolidityParser.RULE_revertStatement = 65; + SolidityParser.RULE_variableDeclarationStatement = 66; + SolidityParser.RULE_variableDeclarationList = 67; + SolidityParser.RULE_identifierList = 68; + SolidityParser.RULE_elementaryTypeName = 69; + SolidityParser.RULE_expression = 70; + SolidityParser.RULE_primaryExpression = 71; + SolidityParser.RULE_expressionList = 72; + SolidityParser.RULE_nameValueList = 73; + SolidityParser.RULE_nameValue = 74; + SolidityParser.RULE_functionCallArguments = 75; + SolidityParser.RULE_functionCall = 76; + SolidityParser.RULE_assemblyBlock = 77; + SolidityParser.RULE_assemblyItem = 78; + SolidityParser.RULE_assemblyExpression = 79; + SolidityParser.RULE_assemblyMember = 80; + SolidityParser.RULE_assemblyCall = 81; + SolidityParser.RULE_assemblyLocalDefinition = 82; + SolidityParser.RULE_assemblyAssignment = 83; + SolidityParser.RULE_assemblyIdentifierOrList = 84; + SolidityParser.RULE_assemblyIdentifierList = 85; + SolidityParser.RULE_assemblyStackAssignment = 86; + SolidityParser.RULE_labelDefinition = 87; + SolidityParser.RULE_assemblySwitch = 88; + SolidityParser.RULE_assemblyCase = 89; + SolidityParser.RULE_assemblyFunctionDefinition = 90; + SolidityParser.RULE_assemblyFunctionReturns = 91; + SolidityParser.RULE_assemblyFor = 92; + SolidityParser.RULE_assemblyIf = 93; + SolidityParser.RULE_assemblyLiteral = 94; + SolidityParser.RULE_tupleExpression = 95; + SolidityParser.RULE_numberLiteral = 96; + SolidityParser.RULE_identifier = 97; + SolidityParser.RULE_hexLiteral = 98; + SolidityParser.RULE_overrideSpecifier = 99; + SolidityParser.RULE_stringLiteral = 100; SolidityParser.ruleNames = [ "sourceUnit", "pragmaDirective", @@ -28354,6 +28470,8 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "typeDefinition", "usingForDeclaration", "usingForObject", + "usingForObjectDirective", + "userDefinableOperators", "structDefinition", "modifierDefinition", "modifierInvocation", @@ -28375,6 +28493,8 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "userDefinedTypeName", "mappingKey", "mapping", + "mappingKeyName", + "mappingValueName", "functionTypeName", "storageLocation", "stateMutability", @@ -28426,7 +28546,6 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "assemblyFor", "assemblyIf", "assemblyLiteral", - "subAssembly", "tupleExpression", "numberLiteral", "identifier", @@ -28463,6 +28582,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "'error'", "'using'", "'for'", + "'|'", + "'&'", + "'+'", + "'-'", + "'/'", + "'%'", + "'=='", + "'!='", "'struct'", "'modifier'", "'function'", @@ -28498,20 +28625,11 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "'--'", "'new'", "':'", - "'+'", - "'-'", - "'after'", "'delete'", "'!'", "'**'", - "'/'", - "'%'", "'<<'", "'>>'", - "'&'", - "'|'", - "'=='", - "'!='", "'&&'", "'?'", "'|='", @@ -28663,7 +28781,6 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv void 0, void 0, void 0, - void 0, "Int", "Uint", "Byte", @@ -28704,9 +28821,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv ]; SolidityParser.VOCABULARY = new import_VocabularyImpl2.VocabularyImpl(_SolidityParser._LITERAL_NAMES, _SolidityParser._SYMBOLIC_NAMES, []); SolidityParser._serializedATNSegments = 3; - SolidityParser._serializedATNSegment0 = "\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x88\u047F     \x07 \x07\b \b \n \n\v \v\f \f\r \r                   ! !\" \"# #$ $% %& &' '( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _` `a ab bc c\x07\xD1\n\f\xD4\v\xE2\n\xE6\n\x07\xE9\n\f\xEC\v\x07\x07\b\b\xF1\n\b\b\b\b\xF5\n\b\b\b\xF8\n\b    \xFD\n \n\n\n\n\n\u0103\n\n\n\n\n\n\n\n\u010A\n\n\n\n\n\u010E\n\n\n\n\n\n\n\n\n\n\n\x07\n\u0119\n\n\f\n\n\u011C\v\n\n\n\n\n\n\n\u0123\n\n\v\v\f\f\u0128\n\f\f\f\f\f\f\f\x07\f\u0130\n\f\f\f\f\u0133\v\f\f\u0135\n\f\f\f\x07\f\u0139\n\f\f\f\f\u013C\v\f\f\f\r\r\r\r\u0143\n\r\r\r\u0146\n\r\u0151\n\x07\u015A\n\f\u015D\v\u0162\n\u017D\n\u0180\n\x07\u0189\n\f\u018C\v\u0190\n\x07\u019A\n\f\u019D\v\u019F\n\u01A6\n\x07\u01AA\n\f\u01AD\v\u01B1\n\u01B6\n\u01B9\n\u01BF\n\u01C3\n\u01C7\n\u01CC\n\x07\u01D9\n\f\u01DC\v\u01E2\n\u01EC\n\x07\u01F0\n\f\u01F3\v\x07\u01FB\n\f\u01FE\v\u0200\n   \u0206\n   \u0209\n !!!!\x07!\u020F\n!\f!!\u0212\v!!\u0214\n!!!\"\"\"\u021A\n\"\"\"\u021D\n\"####\x07#\u0223\n#\f##\u0226\v##\u0228\n###$$$\u022E\n$%%%\u0232\n%%%&&&&&&&&\u023D\n&&&&&\u0242\n&&\x07&\u0245\n&\f&&\u0248\v&'''\x07'\u024D\n'\f''\u0250\v'(((\u0254\n()))))))*****\x07*\u0262\n*\f**\u0265\v****\u0269\n*++,,--\x07-\u0271\n-\f--\u0274\v---................\u0287\n.///00000000\u0293\n01111\u0298\n1111\u029C\n1\r11\u029D222\u02A2\n222\u02A5\n222333333444\u02B1\n455566666\u02BA\n6666\u02BE\n666\u02C1\n6666777\u02C8\n777777\u02CE\n7778899999999:::;;;<<<\u02E4\n<<<===>>>>????@@@@@@@@\u02FA\n@@@@\u02FE\n@@@AA\u0303\nAAAA\u0307\nA\x07A\u0309\nA\fAA\u030C\vABBB\u0310\nBB\x07B\u0313\nB\fBB\u0316\vBBB\u0319\nBBBCCDDDDDDDDDDDDDDDDDDD\u0331\nDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\u0367\nDDDD\u036B\nDDDDDDDDDDDDDDD\x07D\u037B\nD\fDD\u037E\vDEEEEEEEEEE\u0389\nEFFF\x07F\u038E\nF\fFF\u0391\vFGGG\x07G\u0396\nG\fGG\u0399\vGGG\u039C\nGHHHHIII\u03A4\nIIII\u03A8\nII\u03AA\nIJJJJJKK\x07K\u03B3\nK\fKK\u03B6\vKKKLLLLLLLLLLLLLLLLLLL\u03CC\nLMMMM\u03D1\nMNNNNOOOOO\u03DB\nOOOO\u03DF\nOOO\x07O\u03E3\nO\fOO\u03E6\vOOO\u03E9\nOPPPPP\u03EF\nPQQQQRRRRRRR\u03FB\nRSSS\x07S\u0400\nS\fSS\u0403\vSTTTTUUUVVV\x07V\u040F\nV\fVV\u0412\vVWWWWWWW\u041A\nWXXXXX\u0420\nXXXX\u0424\nXXXYYYZZZZ\u042E\nZZZZZ\u0433\nZZZ[[[[\\\\\\\\\\\u043F\n\\]]]]^^^\u0447\n^^^^\u044B\n^\x07^\u044D\n^\f^^\u0450\v^^^^^^\x07^\u0457\n^\f^^\u045A\v^^\u045C\n^^^\u045F\n^___\u0463\n_``aa\u0468\na\raa\u0469bbbbb\x07b\u0471\nb\fbb\u0474\vbbbb\u0478\nbcc\u047B\nc\rcc\u047CcJ\x86d\b\n\f \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\x80\x82\x84\x86\x88\x8A\x8C\x8E\x90\x92\x94\x96\x98\x9A\x9C\x9E\xA0\xA2\xA4\xA6\xA8\xAA\xAC\xAE\xB0\xB2\xB4\xB6\xB8\xBA\xBC\xBE\xC0\xC2\xC4\x07\r*,qqxx||~~&&9ABCDGHIJ \fMN\r\rQZjk\v,,88bbttxx\x80\x80\x82\x83\u04FE\xD2\xD7\xDC\b\xE1\n\xE3\f\xED\xF7\xF9\u0122\u0124\u0127\u013F\u0150\u0152\u0165 \u016C\"\u0171$\u0177&\u018F(\u0191*\u01A2,\u01B2.\u01BA0\u01CB2\u01CD4\u01DA6\u01DD8\u01E5:\u01E7<\u01F6>\u0203@\u020AB\u0217D\u021EF\u022BH\u022FJ\u023CL\u0249N\u0253P\u0255R\u025CT\u026AV\u026CX\u026EZ\u0286\\\u0288^\u028B`\u0294b\u029Fd\u02A8f\u02B0h\u02B2j\u02B5l\u02C5n\u02D1p\u02D3r\u02DBt\u02DEv\u02E1x\u02E7z\u02EA|\u02EE~\u02F9\x80\u0302\x82\u030D\x84\u031C\x86\u0330\x88\u0388\x8A\u038A\x8C\u0392\x8E\u039D\x90\u03A9\x92\u03AB\x94\u03B0\x96\u03CB\x98\u03D0\x9A\u03D2\x9C\u03DA\x9E\u03EA\xA0\u03F0\xA2\u03FA\xA4\u03FC\xA6\u0404\xA8\u0408\xAA\u040B\xAC\u0419\xAE\u041B\xB0\u0427\xB2\u042A\xB4\u0436\xB6\u043E\xB8\u0440\xBA\u045E\xBC\u0460\xBE\u0464\xC0\u0467\xC2\u046B\xC4\u047A\xC6\xD1\xC7\xD1\n\xC8\xD1\f\xC9\xD1:\xCA\xD1(\xCB\xD1.\xCC\xD1\xCD\xD1 \xCE\xD1\"\xCF\xD1$\xD0\xC6\xD0\xC7\xD0\xC8\xD0\xC9\xD0\xCA\xD0\xCB\xD0\xCC\xD0\xCD\xD0\xCE\xD0\xCF\xD1\xD4\xD2\xD0\xD2\xD3\xD3\xD5\xD4\xD2\xD5\xD6\x07\xD6\xD7\xD8\x07\xD8\xD9\xD9\xDA\b\xDA\xDB\x07\xDB\xDC\xDD\xBE`\xDD\x07\xDE\xE2\x07\xDF\xE2\n\xE0\xE2\x86D\xE1\xDE\xE1\xDF\xE1\xE0\xE2 \xE3\xEA\b\xE4\xE6\x07\xE5\xE4\xE5\xE6\xE6\xE7\xE7\xE9\b\xE8\xE5\xE9\xEC\xEA\xE8\xEA\xEB\xEB\v\xEC\xEA\xED\xEE \xEE\r\xEF\xF1\f\x07\xF0\xEF\xF0\xF1\xF1\xF2\xF2\xF8\x07\x85\xF3\xF5\f\x07\xF4\xF3\xF4\xF5\xF5\xF6\xF6\xF8\x07j\xF7\xF0\xF7\xF4\xF8\xF9\xFC\xBE`\xFA\xFB\x07\xFB\xFD\xBE`\xFC\xFA\xFC\xFD\xFD\xFE\xFF\x07\xFF\u0102\v\u0100\u0101\x07\u0101\u0103\xBE`\u0102\u0100\u0102\u0103\u0103\u0104\u0104\u0105\x07\u0105\u0123\u0106\u0109\x07\u0107\u010A\x07\u0108\u010A\xBE`\u0109\u0107\u0109\u0108\u010A\u010D\u010B\u010C\x07\u010C\u010E\xBE`\u010D\u010B\u010D\u010E\u010E\u010F\u010F\u0110\x07\u0110\u0111\v\u0111\u0112\x07\u0112\u0123\u0113\u0114\x07\u0114\u0115\x07\u0115\u011A \u0116\u0117\x07\u0117\u0119 \u0118\u0116\u0119\u011C\u011A\u0118\u011A\u011B\u011B\u011D\u011C\u011A\u011D\u011E\x07\u011E\u011F\x07\u011F\u0120\v\u0120\u0121\x07\u0121\u0123\u0122\xFE\u0122\u0106\u0122\u0113\u0123\u0124\u0125\x07\x84\u0125\u0126\u0128\x07\u0127\u0126\u0127\u0128\u0128\u0129\u0129\u012A \u012A\u0134\xBE`\u012B\u012C\x07\u012C\u0131\r\u012D\u012E\x07\u012E\u0130\r\u012F\u012D\u0130\u0133\u0131\u012F\u0131\u0132\u0132\u0135\u0133\u0131\u0134\u012B\u0134\u0135\u0135\u0136\u0136\u013A\x07\u0137\u0139\u0138\u0137\u0139\u013C\u013A\u0138\u013A\u013B\u013B\u013D\u013C\u013A\u013D\u013E\x07\u013E\u013F\u0145L'\u0140\u0142\x07\u0141\u0143\x8AF\u0142\u0141\u0142\u0143\u0143\u0144\u0144\u0146\x07\u0145\u0140\u0145\u0146\u0146\u0147\u0151\u0148\u0151$\u0149\u0151(\u014A\u0151*\u014B\u0151.\u014C\u01516\u014D\u0151:\u014E\u0151 \u014F\u0151\"\u0150\u0147\u0150\u0148\u0150\u0149\u0150\u014A\u0150\u014B\u0150\u014C\u0150\u014D\u0150\u014E\u0150\u014F\u0151\u0152\u015BJ&\u0153\u015A\x07z\u0154\u015A\x07w\u0155\u015A\x07y\u0156\u015A\x07q\u0157\u015A\x07r\u0158\u015A\xC2b\u0159\u0153\u0159\u0154\u0159\u0155\u0159\u0156\u0159\u0157\u0159\u0158\u015A\u015D\u015B\u0159\u015B\u015C\u015C\u015E\u015D\u015B\u015E\u0161\xBE`\u015F\u0160\x07\r\u0160\u0162\x86D\u0161\u015F\u0161\u0162\u0162\u0163\u0163\u0164\x07\u0164\u0165\u0166J&\u0166\u0167\x07q\u0167\u0168\xBE`\u0168\u0169\x07\r\u0169\u016A\x86D\u016A\u016B\x07\u016B\u016C\u016D\x07\u016D\u016E\xBE`\u016E\u016F<\u016F\u0170\x07\u0170!\u0171\u0172\x07}\u0172\u0173\xBE`\u0173\u0174\x07\u0174\u0175\x84C\u0175\u0176\x07\u0176#\u0177\u0178\x07\u0178\u0179&\u0179\u017C\x07\u017A\u017D\x07\u017B\u017DJ&\u017C\u017A\u017C\u017B\u017D\u017F\u017E\u0180\x07\x7F\u017F\u017E\u017F\u0180\u0180\u0181\u0181\u0182\x07\u0182%\u0183\u0190L'\u0184\u0185\x07\u0185\u018AL'\u0186\u0187\x07\u0187\u0189L'\u0188\u0186\u0189\u018C\u018A\u0188\u018A\u018B\u018B\u018D\u018C\u018A\u018D\u018E\x07\u018E\u0190\u018F\u0183\u018F\u0184\u0190'\u0191\u0192\x07\u0192\u0193\xBE`\u0193\u019E\x07\u0194\u0195H%\u0195\u019B\x07\u0196\u0197H%\u0197\u0198\x07\u0198\u019A\u0199\u0196\u019A\u019D\u019B\u0199\u019B\u019C\u019C\u019F\u019D\u019B\u019E\u0194\u019E\u019F\u019F\u01A0\u01A0\u01A1\x07\u01A1)\u01A2\u01A3\x07\u01A3\u01A5\xBE`\u01A4\u01A6<\u01A5\u01A4\u01A5\u01A6"; - SolidityParser._serializedATNSegment1 = "\u01A6\u01AB\u01A7\u01AA\x07{\u01A8\u01AA\xC2b\u01A9\u01A7\u01A9\u01A8\u01AA\u01AD\u01AB\u01A9\u01AB\u01AC\u01AC\u01B0\u01AD\u01AB\u01AE\u01B1\x07\u01AF\u01B1X-\u01B0\u01AE\u01B0\u01AF\u01B1+\u01B2\u01B8\xBE`\u01B3\u01B5\x07\u01B4\u01B6\x8AF\u01B5\u01B4\u01B5\u01B6\u01B6\u01B7\u01B7\u01B9\x07\u01B8\u01B3\u01B8\u01B9\u01B9-\u01BA\u01BB0\u01BB\u01BC<\u01BC\u01BE4\u01BD\u01BF2\u01BE\u01BD\u01BE\u01BF\u01BF\u01C2\u01C0\u01C3\x07\u01C1\u01C3X-\u01C2\u01C0\u01C2\u01C1\u01C3/\u01C4\u01C6\x07 \u01C5\u01C7\xBE`\u01C6\u01C5\u01C6\u01C7\u01C7\u01CC\u01C8\u01CC\x07\x80\u01C9\u01CC\x07\x81\u01CA\u01CC\x07\x82\u01CB\u01C4\u01CB\u01C8\u01CB\u01C9\u01CB\u01CA\u01CC1\u01CD\u01CE\x07!\u01CE\u01CF<\u01CF3\u01D0\u01D9\x07u\u01D1\u01D9\x07z\u01D2\u01D9\x07w\u01D3\u01D9\x07y\u01D4\u01D9\x07{\u01D5\u01D9V,\u01D6\u01D9,\u01D7\u01D9\xC2b\u01D8\u01D0\u01D8\u01D1\u01D8\u01D2\u01D8\u01D3\u01D8\u01D4\u01D8\u01D5\u01D8\u01D6\u01D8\u01D7\u01D9\u01DC\u01DA\u01D8\u01DA\u01DB\u01DB5\u01DC\u01DA\u01DD\u01DE\x07\"\u01DE\u01DF\xBE`\u01DF\u01E1@!\u01E0\u01E2\x07o\u01E1\u01E0\u01E1\u01E2\u01E2\u01E3\u01E3\u01E4\x07\u01E47\u01E5\u01E6\xBE`\u01E69\u01E7\u01E8\x07#\u01E8\u01E9\xBE`\u01E9\u01EB\x07\u01EA\u01EC8\u01EB\u01EA\u01EB\u01EC\u01EC\u01F1\u01ED\u01EE\x07\u01EE\u01F08\u01EF\u01ED\u01F0\u01F3\u01F1\u01EF\u01F1\u01F2\u01F2\u01F4\u01F3\u01F1\u01F4\u01F5\x07\u01F5;\u01F6\u01FF\x07\u01F7\u01FC> \u01F8\u01F9\x07\u01F9\u01FB> \u01FA\u01F8\u01FB\u01FE\u01FC\u01FA\u01FC\u01FD\u01FD\u0200\u01FE\u01FC\u01FF\u01F7\u01FF\u0200\u0200\u0201\u0201\u0202\x07\u0202=\u0203\u0205J&\u0204\u0206T+\u0205\u0204\u0205\u0206\u0206\u0208\u0207\u0209\xBE`\u0208\u0207\u0208\u0209\u0209?\u020A\u0213\x07\u020B\u0210B\"\u020C\u020D\x07\u020D\u020FB\"\u020E\u020C\u020F\u0212\u0210\u020E\u0210\u0211\u0211\u0214\u0212\u0210\u0213\u020B\u0213\u0214\u0214\u0215\u0215\u0216\x07\u0216A\u0217\u0219J&\u0218\u021A\x07v\u0219\u0218\u0219\u021A\u021A\u021C\u021B\u021D\xBE`\u021C\u021B\u021C\u021D\u021DC\u021E\u0227\x07\u021F\u0224F$\u0220\u0221\x07\u0221\u0223F$\u0222\u0220\u0223\u0226\u0224\u0222\u0224\u0225\u0225\u0228\u0226\u0224\u0227\u021F\u0227\u0228\u0228\u0229\u0229\u022A\x07\u022AE\u022B\u022DJ&\u022C\u022ET+\u022D\u022C\u022D\u022E\u022EG\u022F\u0231J&\u0230\u0232T+\u0231\u0230\u0231\u0232\u0232\u0233\u0233\u0234\xBE`\u0234I\u0235\u0236\b&\u0236\u023D\x84C\u0237\u023DL'\u0238\u023DP)\u0239\u023DR*\u023A\u023B\x07&\u023B\u023D\x07x\u023C\u0235\u023C\u0237\u023C\u0238\u023C\u0239\u023C\u023A\u023D\u0246\u023E\u023F\f\u023F\u0241\x07$\u0240\u0242\x86D\u0241\u0240\u0241\u0242\u0242\u0243\u0243\u0245\x07%\u0244\u023E\u0245\u0248\u0246\u0244\u0246\u0247\u0247K\u0248\u0246\u0249\u024E\xBE`\u024A\u024B\x07'\u024B\u024D\xBE`\u024C\u024A\u024D\u0250\u024E\u024C\u024E\u024F\u024FM\u0250\u024E\u0251\u0254\x84C\u0252\u0254L'\u0253\u0251\u0253\u0252\u0254O\u0255\u0256\x07(\u0256\u0257\x07\u0257\u0258N(\u0258\u0259\x07)\u0259\u025AJ&\u025A\u025B\x07\u025BQ\u025C\u025D\x07 \u025D\u0263D#\u025E\u0262\x07w\u025F\u0262\x07u\u0260\u0262V,\u0261\u025E\u0261\u025F\u0261\u0260\u0262\u0265\u0263\u0261\u0263\u0264\u0264\u0268\u0265\u0263\u0266\u0267\x07!\u0267\u0269D#\u0268\u0266\u0268\u0269\u0269S\u026A\u026B \u026BU\u026C\u026D \u026DW\u026E\u0272\x07\u026F\u0271Z.\u0270\u026F\u0271\u0274\u0272\u0270\u0272\u0273\u0273\u0275\u0274\u0272\u0275\u0276\x07\u0276Y\u0277\u0287^0\u0278\u0287`1\u0279\u0287d3\u027A\u0287j6\u027B\u0287X-\u027C\u0287l7\u027D\u0287p9\u027E\u0287r:\u027F\u0287t;\u0280\u0287v<\u0281\u0287x=\u0282\u0287z>\u0283\u0287f4\u0284\u0287h5\u0285\u0287|?\u0286\u0277\u0286\u0278\u0286\u0279\u0286\u027A\u0286\u027B\u0286\u027C\u0286\u027D\u0286\u027E\u0286\u027F\u0286\u0280\u0286\u0281\u0286\u0282\u0286\u0283\u0286\u0284\u0286\u0285\u0287[\u0288\u0289\x86D\u0289\u028A\x07\u028A]\u028B\u028C\x07-\u028C\u028D\x07\u028D\u028E\x86D\u028E\u028F\x07\u028F\u0292Z.\u0290\u0291\x07.\u0291\u0293Z.\u0292\u0290\u0292\u0293\u0293_\u0294\u0295\x07/\u0295\u0297\x86D\u0296\u02982\u0297\u0296\u0297\u0298\u0298\u0299\u0299\u029BX-\u029A\u029Cb2\u029B\u029A\u029C\u029D\u029D\u029B\u029D\u029E\u029Ea\u029F\u02A4\x070\u02A0\u02A2\xBE`\u02A1\u02A0\u02A1\u02A2\u02A2\u02A3\u02A3\u02A5<\u02A4\u02A1\u02A4\u02A5\u02A5\u02A6\u02A6\u02A7X-\u02A7c\u02A8\u02A9\x071\u02A9\u02AA\x07\u02AA\u02AB\x86D\u02AB\u02AC\x07\u02AC\u02ADZ.\u02ADe\u02AE\u02B1~@\u02AF\u02B1\\/\u02B0\u02AE\u02B0\u02AF\u02B1g\u02B2\u02B3\x072\u02B3\u02B4X-\u02B4i\u02B5\u02B6\x07\u02B6\u02B9\x07\u02B7\u02BAf4\u02B8\u02BA\x07\u02B9\u02B7\u02B9\u02B8\u02BA\u02BD\u02BB\u02BE\\/\u02BC\u02BE\x07\u02BD\u02BB\u02BD\u02BC\u02BE\u02C0\u02BF\u02C1\x86D\u02C0\u02BF\u02C0\u02C1\u02C1\u02C2\u02C2\u02C3\x07\u02C3\u02C4Z.\u02C4k\u02C5\u02C7\x073\u02C6\u02C8\x07\x84\u02C7\u02C6\u02C7\u02C8\u02C8\u02CD\u02C9\u02CA\x07\u02CA\u02CBn8\u02CB\u02CC\x07\u02CC\u02CE\u02CD\u02C9\u02CD\u02CE\u02CE\u02CF\u02CF\u02D0\x94K\u02D0m\u02D1\u02D2\xC4c\u02D2o\u02D3\u02D4\x074\u02D4\u02D5Z.\u02D5\u02D6\x071\u02D6\u02D7\x07\u02D7\u02D8\x86D\u02D8\u02D9\x07\u02D9\u02DA\x07\u02DAq\u02DB\u02DC\x07s\u02DC\u02DD\x07\u02DDs\u02DE\u02DF\x07p\u02DF\u02E0\x07\u02E0u\u02E1\u02E3\x075\u02E2\u02E4\x86D\u02E3\u02E2\u02E3\u02E4\u02E4\u02E5\u02E5\u02E6\x07\u02E6w\u02E7\u02E8\x076\u02E8\u02E9\x07\u02E9y\u02EA\u02EB\x077\u02EB\u02EC\x92J\u02EC\u02ED\x07\u02ED{\u02EE\u02EF\x078\u02EF\u02F0\x92J\u02F0\u02F1\x07\u02F1}\u02F2\u02F3\x079\u02F3\u02FA\x82B\u02F4\u02FAH%\u02F5\u02F6\x07\u02F6\u02F7\x80A\u02F7\u02F8\x07\u02F8\u02FA\u02F9\u02F2\u02F9\u02F4\u02F9\u02F5\u02FA\u02FD\u02FB\u02FC\x07\r\u02FC\u02FE\x86D\u02FD\u02FB\u02FD\u02FE\u02FE\u02FF\u02FF\u0300\x07\u0300\x7F\u0301\u0303H%\u0302\u0301\u0302\u0303\u0303\u030A\u0304\u0306\x07\u0305\u0307H%\u0306\u0305\u0306\u0307\u0307\u0309\u0308\u0304\u0309\u030C\u030A\u0308\u030A\u030B\u030B\x81\u030C\u030A\u030D\u0314\x07\u030E\u0310\xBE`\u030F\u030E\u030F\u0310\u0310\u0311\u0311\u0313\x07\u0312\u030F\u0313\u0316\u0314\u0312\u0314\u0315\u0315\u0318\u0316\u0314\u0317\u0319\xBE`\u0318\u0317\u0318\u0319\u0319\u031A\u031A\u031B\x07\u031B\x83\u031C\u031D \u031D\x85\u031E\u031F\bD\u031F\u0320\x07?\u0320\u0331J&\u0321\u0322\x07\u0322\u0323\x86D\u0323\u0324\x07\u0324\u0331\u0325\u0326 \x07\u0326\u0331\x86D\u0327\u0328 \b\u0328\u0331\x86D\u0329\u032A \u032A\u0331\x86D\u032B\u032C\x07E\u032C\u0331\x86D\u032D\u032E\x07\b\u032E\u0331\x86D\u032F\u0331\x88E\u0330\u031E\u0330\u0321\u0330\u0325\u0330\u0327\u0330\u0329\u0330\u032B\u0330\u032D\u0330\u032F\u0331\u037C\u0332\u0333\f\u0333\u0334\x07F\u0334\u037B\x86D\u0335\u0336\f\u0336\u0337 \n\u0337\u037B\x86D\u0338\u0339\f\u0339\u033A \b\u033A\u037B\x86D\u033B\u033C\f\r\u033C\u033D \v\u033D\u037B\x86D\u033E\u033F\f\f\u033F\u0340\x07K\u0340\u037B\x86D\r\u0341\u0342\f\v\u0342\u0343\x07\x07\u0343\u037B\x86D\f\u0344\u0345\f\n\u0345\u0346\x07L\u0346\u037B\x86D\v\u0347\u0348\f \u0348\u0349 \f\u0349\u037B\x86D\n\u034A\u034B\f\b\u034B\u034C \r\u034C\u037B\x86D \u034D\u034E\f\x07\u034E\u034F\x07O\u034F\u037B\x86D\b\u0350\u0351\f\u0351\u0352\x07\u0352\u037B\x86D\x07\u0353\u0354\f\u0354\u0355\x07P\u0355\u0356\x86D\u0356\u0357\x07@\u0357\u0358\x86D\u0358\u037B\u0359\u035A\f\u035A\u035B \u035B\u037B\x86D\u035C\u035D\f\u035D\u037B \x07\u035E\u035F\f\u035F\u0360\x07$\u0360\u0361\x86D\u0361\u0362\x07%\u0362\u037B\u0363\u0364\f\u0364\u0366\x07$\u0365\u0367\x86D\u0366\u0365\u0366\u0367\u0367\u0368\u0368\u036A\x07@\u0369\u036B\x86D\u036A\u0369\u036A\u036B\u036B\u036C\u036C\u037B\x07%\u036D\u036E\f\u036E\u036F\x07'\u036F\u037B\xBE`\u0370\u0371\f\u0371\u0372\x07\u0372\u0373\x8CG\u0373\u0374\x07\u0374\u037B\u0375\u0376\f\u0376\u0377\x07\u0377\u0378\x90I\u0378\u0379\x07\u0379\u037B\u037A\u0332\u037A\u0335\u037A\u0338\u037A\u033B\u037A\u033E\u037A\u0341\u037A\u0344\u037A\u0347\u037A\u034A\u037A\u034D\u037A\u0350\u037A\u0353\u037A\u0359\u037A\u035C\u037A\u035E\u037A\u0363\u037A\u036D\u037A\u0370\u037A\u0375\u037B\u037E\u037C\u037A\u037C\u037D\u037D\x87\u037E\u037C\u037F\u0389\x07i\u0380\u0389\xBC_\u0381\u0389\xC0a\u0382\u0389\xC4c\u0383\u0389\xBE`\u0384\u0389\x07}\u0385\u0389\x07x\u0386\u0389\xBA^\u0387\u0389J&\u0388\u037F\u0388\u0380\u0388\u0381\u0388\u0382\u0388\u0383\u0388\u0384\u0388\u0385\u0388\u0386\u0388\u0387\u0389\x89\u038A\u038F\x86D\u038B\u038C\x07\u038C\u038E\x86D\u038D\u038B\u038E\u0391\u038F\u038D\u038F\u0390\u0390\x8B\u0391\u038F\u0392\u0397\x8EH\u0393\u0394\x07\u0394\u0396\x8EH\u0395\u0393\u0396\u0399\u0397\u0395\u0397\u0398\u0398\u039B\u0399\u0397\u039A\u039C\x07\u039B\u039A\u039B\u039C\u039C\x8D\u039D\u039E\xBE`\u039E\u039F\x07@\u039F\u03A0\x86D\u03A0\x8F\u03A1\u03A3\x07\u03A2\u03A4\x8CG\u03A3\u03A2\u03A3\u03A4\u03A4\u03A5\u03A5\u03AA\x07\u03A6\u03A8\x8AF\u03A7\u03A6\u03A7\u03A8\u03A8\u03AA\u03A9\u03A1\u03A9\u03A7\u03AA\x91\u03AB\u03AC\x86D\u03AC\u03AD\x07\u03AD\u03AE\x90I\u03AE\u03AF\x07\u03AF\x93\u03B0\u03B4\x07\u03B1\u03B3\x96L\u03B2\u03B1\u03B3\u03B6\u03B4\u03B2\u03B4\u03B5\u03B5\u03B7\u03B6\u03B4\u03B7\u03B8\x07\u03B8\x95\u03B9\u03CC\xBE`\u03BA\u03CC\x94K\u03BB\u03CC\x98M\u03BC\u03CC\x9EP\u03BD\u03CC\xA0Q\u03BE\u03CC\xA6T\u03BF\u03CC\xA8U\u03C0\u03CC\xAAV\u03C1\u03CC\xAEX\u03C2\u03CC\xB2Z\u03C3\u03CC\xB4[\u03C4\u03CC\x07p\u03C5\u03CC\x07s\u03C6\u03CC\x07t\u03C7\u03CC\xB8]\u03C8\u03CC\xBC_\u03C9\u03CC\xC4c\u03CA\u03CC\xC0a\u03CB\u03B9\u03CB\u03BA\u03CB\u03BB\u03CB\u03BC\u03CB\u03BD\u03CB\u03BE\u03CB\u03BF\u03CB\u03C0\u03CB\u03C1\u03CB\u03C2\u03CB\u03C3\u03CB\u03C4\u03CB\u03C5\u03CB\u03C6\u03CB\u03C7\u03CB\u03C8\u03CB\u03C9\u03CB\u03CA\u03CC\x97\u03CD\u03D1\x9CO\u03CE\u03D1\xB6\\\u03CF\u03D1\x9AN\u03D0\u03CD\u03D0\u03CE\u03D0\u03CF\u03D1\x99\u03D2\u03D3\xBE`\u03D3\u03D4\x07'\u03D4\u03D5\xBE`\u03D5\x9B\u03D6\u03DB\x075\u03D7\u03DB\x07&\u03D8\u03DB\x07<\u03D9\u03DB\xBE`\u03DA\u03D6\u03DA\u03D7\u03DA\u03D8\u03DA\u03D9\u03DB\u03E8\u03DC\u03DE\x07\u03DD\u03DF\x98M\u03DE\u03DD\u03DE\u03DF\u03DF\u03E4\u03E0\u03E1\x07\u03E1\u03E3\x98M\u03E2\u03E0\u03E3\u03E6\u03E4\u03E2\u03E4\u03E5\u03E5\u03E7\u03E6\u03E4\u03E7\u03E9\x07\u03E8\u03DC\u03E8\u03E9\u03E9\x9D\u03EA\u03EB\x07[\u03EB\u03EE\xA2R\u03EC\u03ED\x07\\\u03ED\u03EF\x98M\u03EE\u03EC\u03EE\u03EF\u03EF\x9F\u03F0\u03F1\xA2R\u03F1\u03F2\x07\\\u03F2\u03F3\x98M\u03F3\xA1\u03F4\u03FB\xBE`\u03F5\u03FB\x9AN\u03F6\u03F7\x07\u03F7\u03F8\xA4S\u03F8\u03F9\x07\u03F9\u03FB\u03FA\u03F4\u03FA\u03F5\u03FA\u03F6\u03FB\xA3\u03FC\u0401\xBE`\u03FD\u03FE\x07\u03FE\u0400\xBE`\u03FF\u03FD\u0400\u0403\u0401\u03FF\u0401\u0402\u0402\xA5\u0403\u0401\u0404\u0405\x98M\u0405\u0406\x07]\u0406\u0407\xBE`\u0407\xA7\u0408\u0409\xBE`\u0409\u040A\x07@\u040A\xA9\u040B\u040C\x07^\u040C\u0410\x98M\u040D\u040F\xACW\u040E\u040D\u040F\u0412\u0410\u040E\u0410\u0411\u0411\xAB\u0412\u0410\u0413\u0414\x07_\u0414\u0415\xB6\\\u0415\u0416\x94K\u0416\u041A\u0417\u0418\x07`\u0418\u041A\x94K\u0419\u0413\u0419\u0417\u041A\xAD\u041B\u041C\x07 \u041C\u041D\xBE`\u041D\u041F\x07\u041E\u0420\xA4S\u041F\u041E\u041F\u0420\u0420\u0421\u0421\u0423\x07\u0422\u0424\xB0Y\u0423\u0422\u0423\u0424\u0424\u0425\u0425\u0426\x94K\u0426\xAF\u0427\u0428\x07a\u0428\u0429\xA4S\u0429\xB1\u042A\u042D\x07\u042B\u042E\x94K\u042C\u042E\x98M\u042D\u042B\u042D\u042C\u042E\u042F\u042F\u0432\x98M\u0430\u0433\x94K\u0431\u0433\x98M\u0432\u0430\u0432\u0431\u0433\u0434\u0434\u0435\x94K\u0435\xB3\u0436\u0437\x07-\u0437\u0438\x98M\u0438\u0439\x94K\u0439\xB5\u043A\u043F\xC4c\u043B\u043F\x07j\u043C\u043F\x07k\u043D\u043F\xC0a\u043E\u043A\u043E\u043B\u043E\u043C\u043E\u043D\u043F\xB7\u0440\u0441\x073\u0441\u0442\xBE`\u0442\u0443\x94K\u0443\xB9"; - SolidityParser._serializedATNSegment2 = "\u0444\u0446\x07\u0445\u0447\x86D\u0446\u0445\u0446\u0447\u0447\u044E\u0448\u044A\x07\u0449\u044B\x86D\u044A\u0449\u044A\u044B\u044B\u044D\u044C\u0448\u044D\u0450\u044E\u044C\u044E\u044F\u044F\u0451\u0450\u044E\u0451\u045F\x07\u0452\u045B\x07$\u0453\u0458\x86D\u0454\u0455\x07\u0455\u0457\x86D\u0456\u0454\u0457\u045A\u0458\u0456\u0458\u0459\u0459\u045C\u045A\u0458\u045B\u0453\u045B\u045C\u045C\u045D\u045D\u045F\x07%\u045E\u0444\u045E\u0452\u045F\xBB\u0460\u0462 \u0461\u0463\x07l\u0462\u0461\u0462\u0463\u0463\xBD\u0464\u0465 \u0465\xBF\u0466\u0468\x07m\u0467\u0466\u0468\u0469\u0469\u0467\u0469\u046A\u046A\xC1\u046B\u0477\x07c\u046C\u046D\x07\u046D\u0472L'\u046E\u046F\x07\u046F\u0471L'\u0470\u046E\u0471\u0474\u0472\u0470\u0472\u0473\u0473\u0475\u0474\u0472\u0475\u0476\x07\u0476\u0478\u0477\u046C\u0477\u0478\u0478\xC3\u0479\u047B\x07\x84\u047A\u0479\u047B\u047C\u047C\u047A\u047C\u047D\u047D\xC5\x81\xD0\xD2\xE1\xE5\xEA\xF0\xF4\xF7\xFC\u0102\u0109\u010D\u011A\u0122\u0127\u0131\u0134\u013A\u0142\u0145\u0150\u0159\u015B\u0161\u017C\u017F\u018A\u018F\u019B\u019E\u01A5\u01A9\u01AB\u01B0\u01B5\u01B8\u01BE\u01C2\u01C6\u01CB\u01D8\u01DA\u01E1\u01EB\u01F1\u01FC\u01FF\u0205\u0208\u0210\u0213\u0219\u021C\u0224\u0227\u022D\u0231\u023C\u0241\u0246\u024E\u0253\u0261\u0263\u0268\u0272\u0286\u0292\u0297\u029D\u02A1\u02A4\u02B0\u02B9\u02BD\u02C0\u02C7\u02CD\u02E3\u02F9\u02FD\u0302\u0306\u030A\u030F\u0314\u0318\u0330\u0366\u036A\u037A\u037C\u0388\u038F\u0397\u039B\u03A3\u03A7\u03A9\u03B4\u03CB\u03D0\u03DA\u03DE\u03E4\u03E8\u03EE\u03FA\u0401\u0410\u0419\u041F\u0423\u042D\u0432\u043E\u0446\u044A\u044E\u0458\u045B\u045E\u0462\u0469\u0472\u0477\u047C"; + SolidityParser._serializedATNSegment0 = '\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x87\u0493     \x07 \x07\b \b \n \n\v \v\f \f\r \r                   ! !" "# #$ $% %& &\' \'( () )* *+ +, ,- -. ./ /0 01 12 23 34 45 56 67 78 89 9: :; ;< <= => >? ?@ @A AB BC CD DE EF FG GH HI IJ JK KL LM MN NO OP PQ QR RS ST TU UV VW WX XY YZ Z[ [\\ \\] ]^ ^_ _` `a ab bc cd de ef f\x07\xD7\n\f\xDA\v\xE8\n\xEC\n\x07\xEF\n\f\xF2\v\x07\x07\b\b\xF7\n\b\b\b\b\xFB\n\b\b\b\xFE\n\b    \u0103\n \n\n\n\n\n\u0109\n\n\n\n\n\n\n\n\u0110\n\n\n\n\n\u0114\n\n\n\n\n\n\n\n\n\n\n\x07\n\u011F\n\n\f\n\n\u0122\v\n\n\n\n\n\n\n\u0129\n\n\v\v\f\f\u012E\n\f\f\f\f\f\f\f\x07\f\u0136\n\f\f\f\f\u0139\v\f\f\u013B\n\f\f\f\x07\f\u013F\n\f\f\f\f\u0142\v\f\f\f\r\r\r\r\u0149\n\r\r\r\u014C\n\r\u0157\n\x07\u0160\n\f\u0163\v\u0168\n\u0183\n\u0186\n\x07\u018F\n\f\u0192\v\u0196\n\u019B\n\x07\u01A7\n\f\u01AA\v\u01AC\n\u01B3\n\x07\u01B7\n\f\u01BA\v\u01BE\n\u01C3\n\u01C6\n\u01CC\n\u01D0\n\u01D4\n\u01D9\n\x07\u01E6\n\f\u01E9\v\u01EF\n     \u01F9\n   \x07 \u01FD\n \f  \u0200\v   !!!!\x07!\u0208\n!\f!!\u020B\v!!\u020D\n!!!"""\u0213\n"""\u0216\n"####\x07#\u021C\n#\f##\u021F\v##\u0221\n###$$$\u0227\n$$$\u022A\n$%%%%\x07%\u0230\n%\f%%\u0233\v%%\u0235\n%%%&&&\u023B\n&\'\'\'\u023F\n\'\'\'((((((((\u024A\n(((((\u024F\n((\x07(\u0252\n(\f((\u0255\v()))\x07)\u025A\n)\f))\u025D\v)***\u0261\n*+++++\u0267\n+++++\u026C\n+++,,--.....\x07.\u0279\n.\f..\u027C\v....\u0280\n.//0011\x071\u0288\n1\f11\u028B\v1112222222222222222\u029E\n233344444444\u02AA\n45555\u02AF\n5555\u02B3\n5\r55\u02B4666\u02B9\n666\u02BC\n666777777888\u02C8\n8999:::::\u02D1\n::::\u02D5\n:::\u02D8\n::::;;;\u02DF\n;;;;;;\u02E5\n;;;<<========>>>???@@@\u02FB\n@@@AAABBBBCCCCDDDDDDDD\u0311\nDDDD\u0315\nDDDEE\u031A\nEEEE\u031E\nE\x07E\u0320\nE\fEE\u0323\vEFFF\u0327\nFF\x07F\u032A\nF\fFF\u032D\vFFF\u0330\nFFFGGHHHHHHHHHHHHHHHHHHH\u0348\nHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\u037E\nHHHH\u0382\nHHHHHHHHHHHHHHH\x07H\u0392\nH\fHH\u0395\vHIIIIIIIIII\u03A0\nIJJJ\x07J\u03A5\nJ\fJJ\u03A8\vJKKK\x07K\u03AD\nK\fKK\u03B0\vKKK\u03B3\nKLLLLMMM\u03BB\nMMMM\u03BF\nMM\u03C1\nMNNNNNOO\x07O\u03CA\nO\fOO\u03CD\vOOOPPPPPPPPPPPPPPPPPP\u03E2\nPQQQQ\u03E7\nQRRRRSSSSS\u03F1\nSSSS\u03F5\nSSS\x07S\u03F9\nS\fSS\u03FC\vSSS\u03FF\nSTTTTT\u0405\nTUUUUVVVVVVVV\u0412\nVWWW\x07W\u0417\nW\fWW\u041A\vWXXXXYYYZZZ\x07Z\u0426\nZ\fZZ\u0429\vZ[[[[[[[\u0431\n[\\\\\\\\\\\u0437\n\\\\\\\\\u043B\n\\\\\\]]]^^^^\u0445\n^^^^^\u044A\n^^^____``````\u0457\n`aaa\u045B\naaaa\u045F\na\x07a\u0461\na\faa\u0464\vaaaaaa\x07a\u046B\na\faa\u046E\vaa\u0470\naaa\u0473\nabbb\u0477\nbccdd\u047C\nd\rdd\u047Deeeee\x07e\u0485\ne\fee\u0488\veeee\u048C\neff\u048F\nf\rff\u0490fN\x8Eg\b\n\f "$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\x80\x82\x84\x86\x88\x8A\x8C\x8E\x90\x92\x94\x96\x98\x9A\x9C\x9E\xA0\xA2\xA4\xA6\xA8\xAA\xAC\xAE\xB0\xB2\xB4\xB6\xB8\xBA\xBC\xBE\xC0\xC2\xC4\xC6\xC8\xCA\x07\r\x07\f%24ppww{{}}..ADcgEF !"#LM \f$%\r\rPYij\f..44@@aassww~\x7F\x81\x82\u0513\xD8\xDD\xE2\b\xE7\n\xE9\f\xF3\xFD\xFF\u0128\u012A\u012D\u0145\u0156\u0158\u016B \u0172"\u0177$\u017D&\u0195(\u0197*\u019C,\u019E.\u01AF0\u01BF2\u01C74\u01D86\u01DA8\u01E7:\u01EA<\u01F2>\u01F4@\u0203B\u0210D\u0217F\u0224H\u022BJ\u0238L\u023CN\u0249P\u0256R\u0260T\u0262V\u026FX\u0271Z\u0273\\\u0281^\u0283`\u0285b\u029Dd\u029Ff\u02A2h\u02ABj\u02B6l\u02BFn\u02C7p\u02C9r\u02CCt\u02DCv\u02E8x\u02EAz\u02F2|\u02F5~\u02F8\x80\u02FE\x82\u0301\x84\u0305\x86\u0310\x88\u0319\x8A\u0324\x8C\u0333\x8E\u0347\x90\u039F\x92\u03A1\x94\u03A9\x96\u03B4\x98\u03C0\x9A\u03C2\x9C\u03C7\x9E\u03E1\xA0\u03E6\xA2\u03E8\xA4\u03F0\xA6\u0400\xA8\u0406\xAA\u0411\xAC\u0413\xAE\u041B\xB0\u041F\xB2\u0422\xB4\u0430\xB6\u0432\xB8\u043E\xBA\u0441\xBC\u044D\xBE\u0456\xC0\u0472\xC2\u0474\xC4\u0478\xC6\u047B\xC8\u047F\xCA\u048E\xCC\xD7\xCD\xD7\n\xCE\xD7\f\xCF\xD7> \xD0\xD7,\xD1\xD72\xD2\xD7\xD3\xD7 \xD4\xD7"\xD5\xD7$\xD6\xCC\xD6\xCD\xD6\xCE\xD6\xCF\xD6\xD0\xD6\xD1\xD6\xD2\xD6\xD3\xD6\xD4\xD6\xD5\xD7\xDA\xD8\xD6\xD8\xD9\xD9\xDB\xDA\xD8\xDB\xDC\x07\xDC\xDD\xDE\x07\xDE\xDF\xDF\xE0\b\xE0\xE1\x07\xE1\xE2\xE3\xC4c\xE3\x07\xE4\xE8\x07\xE5\xE8\n\xE6\xE8\x8EH\xE7\xE4\xE7\xE5\xE7\xE6\xE8 \xE9\xF0\b\xEA\xEC\x07\xEB\xEA\xEB\xEC\xEC\xED\xED\xEF\b\xEE\xEB\xEF\xF2\xF0\xEE\xF0\xF1\xF1\v\xF2\xF0\xF3\xF4 \xF4\r\xF5\xF7\f\x07\xF6\xF5\xF6\xF7\xF7\xF8\xF8\xFE\x07\x84\xF9\xFB\f\x07\xFA\xF9\xFA\xFB\xFB\xFC\xFC\xFE\x07i\xFD\xF6\xFD\xFA\xFE\xFF\u0102\xC4c\u0100\u0101\x07\u0101\u0103\xC4c\u0102\u0100\u0102\u0103\u0103\u0104\u0105\x07\u0105\u0108\v\u0106\u0107\x07\u0107\u0109\xC4c\u0108\u0106\u0108\u0109\u0109\u010A\u010A\u010B\x07\u010B\u0129\u010C\u010F\x07\u010D\u0110\x07\u010E\u0110\xC4c\u010F\u010D\u010F\u010E\u0110\u0113\u0111\u0112\x07\u0112\u0114\xC4c\u0113\u0111\u0113\u0114\u0114\u0115\u0115\u0116\x07\u0116\u0117\v\u0117\u0118\x07\u0118\u0129\u0119\u011A\x07\u011A\u011B\x07\u011B\u0120 \u011C\u011D\x07\u011D\u011F \u011E\u011C\u011F\u0122\u0120\u011E\u0120\u0121\u0121\u0123\u0122\u0120\u0123\u0124\x07\u0124\u0125\x07\u0125\u0126\v\u0126\u0127\x07\u0127\u0129\u0128\u0104\u0128\u010C\u0128\u0119\u0129\u012A\u012B\x07\x83\u012B\u012C\u012E\x07\u012D\u012C\u012D\u012E\u012E\u012F\u012F\u0130 \u0130\u013A\xC4c\u0131\u0132\x07\u0132\u0137\r\u0133\u0134\x07\u0134\u0136\r\u0135\u0133\u0136\u0139\u0137\u0135\u0137\u0138\u0138\u013B\u0139\u0137\u013A\u0131\u013A\u013B\u013B\u013C\u013C\u0140\x07\u013D\u013F\u013E\u013D\u013F\u0142\u0140\u013E\u0140\u0141\u0141\u0143\u0142\u0140\u0143\u0144\x07\u0144\u0145\u014BP)\u0146\u0148\x07\u0147\u0149\x92J\u0148\u0147\u0148\u0149\u0149\u014A\u014A\u014C\x07\u014B\u0146\u014B\u014C\u014C\u014D\u0157\u014E\u0157$\u014F\u0157,\u0150\u0157.\u0151\u01572\u0152\u0157:\u0153\u0157> \u0154\u0157 \u0155\u0157"\u0156\u014D\u0156\u014E\u0156\u014F\u0156\u0150\u0156\u0151\u0156\u0152\u0156\u0153\u0156\u0154\u0156\u0155\u0157\u0158\u0161N(\u0159\u0160\x07y\u015A\u0160\x07v\u015B\u0160\x07x\u015C\u0160\x07p\u015D\u0160\x07q\u015E\u0160\xC8e\u015F\u0159\u015F\u015A\u015F\u015B\u015F\u015C\u015F\u015D\u015F\u015E\u0160\u0163\u0161\u015F\u0161\u0162\u0162\u0164\u0163\u0161\u0164\u0167\xC4c\u0165\u0166\x07\r\u0166\u0168\x8EH\u0167\u0165\u0167\u0168\u0168\u0169\u0169\u016A\x07\u016A\u016B\u016CN(\u016C\u016D\x07p\u016D\u016E\xC4c\u016E\u016F\x07\r\u016F\u0170\x8EH\u0170\u0171\x07\u0171\u0172\u0173\x07\u0173\u0174\xC4c\u0174\u0175@!\u0175\u0176\x07\u0176!\u0177\u0178\x07|\u0178\u0179\xC4c\u0179\u017A\x07\u017A\u017B\x8CG\u017B\u017C\x07\u017C#\u017D\u017E\x07\u017E\u017F&\u017F\u0182\x07\u0180\u0183\x07\u0181\u0183N(\u0182\u0180\u0182\u0181\u0183\u0185\u0184\u0186\x07~\u0185\u0184\u0185\u0186\u0186\u0187\u0187\u0188\x07\u0188%\u0189\u0196P)\u018A\u018B\x07\u018B\u0190(\u018C\u018D\x07\u018D\u018F(\u018E\u018C\u018F\u0192\u0190\u018E\u0190\u0191\u0191\u0193\u0192\u0190\u0193\u0194\x07\u0194\u0196\u0195\u0189\u0195\u018A\u0196\'\u0197\u019AP)\u0198\u0199\x07\u0199\u019B*\u019A\u0198\u019A\u019B\u019B)\u019C\u019D \u019D+\u019E\u019F\x07&\u019F\u01A0\xC4c\u01A0\u01AB\x07\u01A1'; + SolidityParser._serializedATNSegment1 = "\u01A2L'\u01A2\u01A8\x07\u01A3\u01A4L'\u01A4\u01A5\x07\u01A5\u01A7\u01A6\u01A3\u01A7\u01AA\u01A8\u01A6\u01A8\u01A9\u01A9\u01AC\u01AA\u01A8\u01AB\u01A1\u01AB\u01AC\u01AC\u01AD\u01AD\u01AE\x07\u01AE-\u01AF\u01B0\x07'\u01B0\u01B2\xC4c\u01B1\u01B3@!\u01B2\u01B1\u01B2\u01B3\u01B3\u01B8\u01B4\u01B7\x07z\u01B5\u01B7\xC8e\u01B6\u01B4\u01B6\u01B5\u01B7\u01BA\u01B8\u01B6\u01B8\u01B9\u01B9\u01BD\u01BA\u01B8\u01BB\u01BE\x07\u01BC\u01BE`1\u01BD\u01BB\u01BD\u01BC\u01BE/\u01BF\u01C5\xC4c\u01C0\u01C2\x07\u01C1\u01C3\x92J\u01C2\u01C1\u01C2\u01C3\u01C3\u01C4\u01C4\u01C6\x07\u01C5\u01C0\u01C5\u01C6\u01C61\u01C7\u01C84\u01C8\u01C9@!\u01C9\u01CB8\u01CA\u01CC6\u01CB\u01CA\u01CB\u01CC\u01CC\u01CF\u01CD\u01D0\x07\u01CE\u01D0`1\u01CF\u01CD\u01CF\u01CE\u01D03\u01D1\u01D3\x07(\u01D2\u01D4\xC4c\u01D3\u01D2\u01D3\u01D4\u01D4\u01D9\u01D5\u01D9\x07\x7F\u01D6\u01D9\x07\x80\u01D7\u01D9\x07\x81\u01D8\u01D1\u01D8\u01D5\u01D8\u01D6\u01D8\u01D7\u01D95\u01DA\u01DB\x07)\u01DB\u01DC@!\u01DC7\u01DD\u01E6\x07t\u01DE\u01E6\x07y\u01DF\u01E6\x07v\u01E0\u01E6\x07x\u01E1\u01E6\x07z\u01E2\u01E6^0\u01E3\u01E60\u01E4\u01E6\xC8e\u01E5\u01DD\u01E5\u01DE\u01E5\u01DF\u01E5\u01E0\u01E5\u01E1\u01E5\u01E2\u01E5\u01E3\u01E5\u01E4\u01E6\u01E9\u01E7\u01E5\u01E7\u01E8\u01E89\u01E9\u01E7\u01EA\u01EB\x07*\u01EB\u01EC\xC4c\u01EC\u01EED#\u01ED\u01EF\x07n\u01EE\u01ED\u01EE\u01EF\u01EF\u01F0\u01F0\u01F1\x07\u01F1;\u01F2\u01F3\xC4c\u01F3=\u01F4\u01F5\x07+\u01F5\u01F6\xC4c\u01F6\u01F8\x07\u01F7\u01F9<\u01F8\u01F7\u01F8\u01F9\u01F9\u01FE\u01FA\u01FB\x07\u01FB\u01FD<\u01FC\u01FA\u01FD\u0200\u01FE\u01FC\u01FE\u01FF\u01FF\u0201\u0200\u01FE\u0201\u0202\x07\u0202?\u0203\u020C\x07\u0204\u0209B\"\u0205\u0206\x07\u0206\u0208B\"\u0207\u0205\u0208\u020B\u0209\u0207\u0209\u020A\u020A\u020D\u020B\u0209\u020C\u0204\u020C\u020D\u020D\u020E\u020E\u020F\x07\u020FA\u0210\u0212N(\u0211\u0213\\/\u0212\u0211\u0212\u0213\u0213\u0215\u0214\u0216\xC4c\u0215\u0214\u0215\u0216\u0216C\u0217\u0220\x07\u0218\u021DF$\u0219\u021A\x07\u021A\u021CF$\u021B\u0219\u021C\u021F\u021D\u021B\u021D\u021E\u021E\u0221\u021F\u021D\u0220\u0218\u0220\u0221\u0221\u0222\u0222\u0223\x07\u0223E\u0224\u0226N(\u0225\u0227\x07u\u0226\u0225\u0226\u0227\u0227\u0229\u0228\u022A\xC4c\u0229\u0228\u0229\u022A\u022AG\u022B\u0234\x07\u022C\u0231J&\u022D\u022E\x07\u022E\u0230J&\u022F\u022D\u0230\u0233\u0231\u022F\u0231\u0232\u0232\u0235\u0233\u0231\u0234\u022C\u0234\u0235\u0235\u0236\u0236\u0237\x07\u0237I\u0238\u023AN(\u0239\u023B\\/\u023A\u0239\u023A\u023B\u023BK\u023C\u023EN(\u023D\u023F\\/\u023E\u023D\u023E\u023F\u023F\u0240\u0240\u0241\xC4c\u0241M\u0242\u0243\b(\u0243\u024A\x8CG\u0244\u024AP)\u0245\u024AT+\u0246\u024AZ.\u0247\u0248\x07.\u0248\u024A\x07w\u0249\u0242\u0249\u0244\u0249\u0245\u0249\u0246\u0249\u0247\u024A\u0253\u024B\u024C\f\u024C\u024E\x07,\u024D\u024F\x8EH\u024E\u024D\u024E\u024F\u024F\u0250\u0250\u0252\x07-\u0251\u024B\u0252\u0255\u0253\u0251\u0253\u0254\u0254O\u0255\u0253\u0256\u025B\xC4c\u0257\u0258\x07/\u0258\u025A\xC4c\u0259\u0257\u025A\u025D\u025B\u0259\u025B\u025C\u025CQ\u025D\u025B\u025E\u0261\x8CG\u025F\u0261P)\u0260\u025E\u0260\u025F\u0261S\u0262\u0263\x070\u0263\u0264\x07\u0264\u0266R*\u0265\u0267V,\u0266\u0265\u0266\u0267\u0267\u0268\u0268\u0269\x071\u0269\u026BN(\u026A\u026CX-\u026B\u026A\u026B\u026C\u026C\u026D\u026D\u026E\x07\u026EU\u026F\u0270\xC4c\u0270W\u0271\u0272\xC4c\u0272Y\u0273\u0274\x07(\u0274\u027AH%\u0275\u0279\x07v\u0276\u0279\x07t\u0277\u0279^0\u0278\u0275\u0278\u0276\u0278\u0277\u0279\u027C\u027A\u0278\u027A\u027B\u027B\u027F\u027C\u027A\u027D\u027E\x07)\u027E\u0280H%\u027F\u027D\u027F\u0280\u0280[\u0281\u0282 \u0282]\u0283\u0284 \u0284_\u0285\u0289\x07\u0286\u0288b2\u0287\u0286\u0288\u028B\u0289\u0287\u0289\u028A\u028A\u028C\u028B\u0289\u028C\u028D\x07\u028Da\u028E\u029Ef4\u028F\u029Eh5\u0290\u029El7\u0291\u029Er:\u0292\u029E`1\u0293\u029Et;\u0294\u029Ex=\u0295\u029Ez>\u0296\u029E|?\u0297\u029E~@\u0298\u029E\x80A\u0299\u029E\x82B\u029A\u029En8\u029B\u029Ep9\u029C\u029E\x84C\u029D\u028E\u029D\u028F\u029D\u0290\u029D\u0291\u029D\u0292\u029D\u0293\u029D\u0294\u029D\u0295\u029D\u0296\u029D\u0297\u029D\u0298\u029D\u0299\u029D\u029A\u029D\u029B\u029D\u029C\u029Ec\u029F\u02A0\x8EH\u02A0\u02A1\x07\u02A1e\u02A2\u02A3\x075\u02A3\u02A4\x07\u02A4\u02A5\x8EH\u02A5\u02A6\x07\u02A6\u02A9b2\u02A7\u02A8\x076\u02A8\u02AAb2\u02A9\u02A7\u02A9\u02AA\u02AAg\u02AB\u02AC\x077\u02AC\u02AE\x8EH\u02AD\u02AF6\u02AE\u02AD\u02AE\u02AF\u02AF\u02B0\u02B0\u02B2`1\u02B1\u02B3j6\u02B2\u02B1\u02B3\u02B4\u02B4\u02B2\u02B4\u02B5\u02B5i\u02B6\u02BB\x078\u02B7\u02B9\xC4c\u02B8\u02B7\u02B8\u02B9\u02B9\u02BA\u02BA\u02BC@!\u02BB\u02B8\u02BB\u02BC\u02BC\u02BD\u02BD\u02BE`1\u02BEk\u02BF\u02C0\x079\u02C0\u02C1\x07\u02C1\u02C2\x8EH\u02C2\u02C3\x07\u02C3\u02C4b2\u02C4m\u02C5\u02C8\x86D\u02C6\u02C8d3\u02C7\u02C5\u02C7\u02C6\u02C8o\u02C9\u02CA\x07:\u02CA\u02CB`1\u02CBq\u02CC\u02CD\x07\u02CD\u02D0\x07\u02CE\u02D1n8\u02CF\u02D1\x07\u02D0\u02CE\u02D0\u02CF\u02D1\u02D4\u02D2\u02D5d3\u02D3\u02D5\x07\u02D4\u02D2\u02D4\u02D3\u02D5\u02D7\u02D6\u02D8\x8EH\u02D7\u02D6\u02D7\u02D8\u02D8\u02D9\u02D9\u02DA\x07\u02DA\u02DBb2\u02DBs\u02DC\u02DE\x07;\u02DD\u02DF\x07\x83\u02DE\u02DD\u02DE\u02DF\u02DF\u02E4\u02E0\u02E1\x07\u02E1\u02E2v<\u02E2\u02E3\x07\u02E3\u02E5\u02E4\u02E0\u02E4\u02E5\u02E5\u02E6\u02E6\u02E7\x9CO\u02E7u\u02E8\u02E9\xCAf\u02E9w\u02EA\u02EB\x07<\u02EB\u02ECb2\u02EC\u02ED\x079\u02ED\u02EE\x07\u02EE\u02EF\x8EH\u02EF\u02F0\x07\u02F0\u02F1\x07\u02F1y\u02F2\u02F3\x07r\u02F3\u02F4\x07\u02F4{\u02F5\u02F6\x07o\u02F6\u02F7\x07\u02F7}\u02F8\u02FA\x07=\u02F9\u02FB\x8EH\u02FA\u02F9\u02FA\u02FB\u02FB\u02FC\u02FC\u02FD\x07\u02FD\x7F\u02FE\u02FF\x07>\u02FF\u0300\x07\u0300\x81\u0301\u0302\x07?\u0302\u0303\x9AN\u0303\u0304\x07\u0304\x83\u0305\u0306\x07@\u0306\u0307\x9AN\u0307\u0308\x07\u0308\x85\u0309\u030A\x07A\u030A\u0311\x8AF\u030B\u0311L'\u030C\u030D\x07\u030D\u030E\x88E\u030E\u030F\x07\u030F\u0311\u0310\u0309\u0310\u030B\u0310\u030C\u0311\u0314\u0312\u0313\x07\r\u0313\u0315\x8EH\u0314\u0312\u0314\u0315\u0315\u0316\u0316\u0317\x07\u0317\x87\u0318\u031AL'\u0319\u0318\u0319\u031A\u031A\u0321\u031B\u031D\x07\u031C\u031EL'\u031D\u031C\u031D\u031E\u031E\u0320\u031F\u031B\u0320\u0323\u0321\u031F\u0321\u0322\u0322\x89\u0323\u0321\u0324\u032B\x07\u0325\u0327\xC4c\u0326\u0325\u0326\u0327\u0327\u0328\u0328\u032A\x07\u0329\u0326\u032A\u032D\u032B\u0329\u032B\u032C\u032C\u032F\u032D\u032B\u032E\u0330\xC4c\u032F\u032E\u032F\u0330\u0330\u0331\u0331\u0332\x07\u0332\x8B\u0333\u0334 \x07\u0334\x8D\u0335\u0336\bH\u0336\u0337\x07G\u0337\u0348N(\u0338\u0339\x07\u0339\u033A\x8EH\u033A\u033B\x07\u033B\u0348\u033C\u033D \b\u033D\u0348\x8EH\u033E\u033F \u033F\u0348\x8EH\u0340\u0341\x07I\u0341\u0348\x8EH\u0342\u0343\x07J\u0343\u0348\x8EH\u0344\u0345\x07\b\u0345\u0348\x8EH\u0346\u0348\x90I\u0347\u0335\u0347\u0338\u0347\u033C\u0347\u033E\u0347\u0340\u0347\u0342\u0347\u0344\u0347\u0346\u0348\u0393\u0349\u034A\f\u034A\u034B\x07K\u034B\u0392\x8EH\u034C\u034D\f\u034D\u034E \n\u034E\u0392\x8EH\u034F\u0350\f\u0350\u0351 \u0351\u0392\x8EH\u0352\u0353\f\r\u0353\u0354 \v\u0354\u0392\x8EH\u0355\u0356\f\f\u0356\u0357\x07\u0357\u0392\x8EH\r\u0358\u0359\f\v\u0359\u035A\x07\x07\u035A\u0392\x8EH\f\u035B\u035C\f\n\u035C\u035D\x07\u035D\u0392\x8EH\v\u035E\u035F\f \u035F\u0360 \f\u0360\u0392\x8EH\n\u0361\u0362\f\b\u0362\u0363 \r\u0363\u0392\x8EH \u0364\u0365\f\x07\u0365\u0366\x07N\u0366\u0392\x8EH\b\u0367\u0368\f\u0368\u0369\x07\u0369\u0392\x8EH\x07\u036A\u036B\f\u036B\u036C\x07O\u036C\u036D\x8EH\u036D\u036E\x07H\u036E\u036F\x8EH\u036F\u0392\u0370\u0371\f\u0371\u0372 \u0372\u0392\x8EH\u0373\u0374\f\u0374\u0392 \b\u0375\u0376\f\u0376\u0377\x07,\u0377\u0378\x8EH\u0378\u0379\x07-\u0379\u0392\u037A\u037B\f\u037B\u037D\x07,\u037C\u037E\x8EH\u037D\u037C\u037D\u037E\u037E\u037F\u037F\u0381\x07H\u0380\u0382\x8EH\u0381\u0380\u0381\u0382\u0382\u0383\u0383\u0392\x07-\u0384\u0385\f\u0385\u0386\x07/\u0386\u0392\xC4c\u0387\u0388\f\u0388\u0389\x07\u0389\u038A\x94K\u038A\u038B\x07\u038B\u0392\u038C\u038D\f\u038D\u038E\x07\u038E\u038F\x98M\u038F\u0390\x07\u0390\u0392\u0391\u0349\u0391\u034C\u0391\u034F\u0391\u0352\u0391\u0355\u0391\u0358\u0391\u035B\u0391\u035E\u0391\u0361\u0391\u0364\u0391\u0367\u0391\u036A\u0391\u0370\u0391\u0373\u0391\u0375\u0391\u037A\u0391\u0384\u0391\u0387\u0391\u038C\u0392\u0395\u0393\u0391\u0393\u0394\u0394\x8F\u0395\u0393\u0396\u03A0\x07h\u0397\u03A0\xC2b\u0398\u03A0\xC6d\u0399\u03A0\xCAf\u039A\u03A0\xC4c\u039B\u03A0\x07|\u039C\u03A0\x07w\u039D\u03A0\xC0a\u039E\u03A0N(\u039F\u0396\u039F\u0397\u039F\u0398\u039F\u0399\u039F\u039A\u039F\u039B\u039F\u039C\u039F\u039D\u039F\u039E\u03A0\x91\u03A1\u03A6\x8EH\u03A2\u03A3\x07\u03A3\u03A5\x8EH\u03A4\u03A2\u03A5\u03A8\u03A6\u03A4\u03A6\u03A7\u03A7\x93\u03A8\u03A6\u03A9\u03AE\x96L\u03AA\u03AB\x07\u03AB\u03AD\x96L\u03AC\u03AA\u03AD\u03B0\u03AE\u03AC\u03AE\u03AF\u03AF\u03B2\u03B0\u03AE\u03B1\u03B3\x07\u03B2\u03B1\u03B2\u03B3\u03B3\x95\u03B4\u03B5\xC4c\u03B5\u03B6\x07H\u03B6\u03B7\x8EH\u03B7\x97\u03B8\u03BA\x07\u03B9\u03BB\x94K\u03BA\u03B9\u03BA\u03BB\u03BB\u03BC\u03BC\u03C1\x07\u03BD\u03BF\x92J\u03BE\u03BD\u03BE\u03BF\u03BF\u03C1\u03C0\u03B8\u03C0\u03BE\u03C1\x99\u03C2\u03C3\x8EH\u03C3\u03C4\x07\u03C4\u03C5\x98M\u03C5\u03C6\x07\u03C6\x9B\u03C7\u03CB\x07\u03C8\u03CA\x9EP\u03C9\u03C8\u03CA\u03CD\u03CB\u03C9\u03CB\u03CC\u03CC\u03CE\u03CD\u03CB\u03CE\u03CF\x07\u03CF\x9D\u03D0\u03E2\xC4c\u03D1\u03E2\x9CO\u03D2\u03E2\xA0Q\u03D3\u03E2\xA6T\u03D4\u03E2\xA8U\u03D5\u03E2\xAEX\u03D6\u03E2\xB0Y\u03D7\u03E2\xB2Z\u03D8\u03E2\xB6\\\u03D9\u03E2\xBA^\u03DA\u03E2\xBC_\u03DB\u03E2\x07o\u03DC\u03E2\x07r\u03DD\u03E2\x07s\u03DE\u03E2\xC2b\u03DF\u03E2\xCAf\u03E0\u03E2\xC6d\u03E1\u03D0\u03E1\u03D1\u03E1\u03D2\u03E1\u03D3\u03E1\u03D4\u03E1\u03D5\u03E1\u03D6\u03E1\u03D7\u03E1\u03D8\u03E1\u03D9\u03E1\u03DA\u03E1\u03DB\u03E1\u03DC\u03E1\u03DD\u03E1\u03DE\u03E1\u03DF\u03E1\u03E0\u03E2\x9F\u03E3\u03E7\xA4S\u03E4\u03E7\xBE`\u03E5\u03E7\xA2R\u03E6\u03E3\u03E6\u03E4\u03E6\u03E5\u03E7\xA1\u03E8\u03E9\xC4c\u03E9\u03EA\x07/\u03EA\u03EB\xC4c\u03EB\xA3\u03EC\u03F1\x07=\u03ED\u03F1\x07.\u03EE\u03F1\x07D\u03EF\u03F1\xC4c\u03F0\u03EC\u03F0\u03ED\u03F0\u03EE\u03F0\u03EF\u03F1\u03FE\u03F2\u03F4\x07\u03F3\u03F5\xA0Q\u03F4\u03F3\u03F4\u03F5\u03F5\u03FA\u03F6\u03F7\x07\u03F7\u03F9\xA0Q\u03F8\u03F6\u03F9\u03FC\u03FA\u03F8\u03FA\u03FB\u03FB\u03FD\u03FC\u03FA\u03FD\u03FF\x07\u03FE\u03F2\u03FE\u03FF\u03FF\xA5\u0400\u0401\x07Z\u0401\u0404\xAAV\u0402\u0403\x07[\u0403\u0405\xA0Q\u0404\u0402\u0404\u0405\u0405\xA7\u0406\u0407\xAAV\u0407\u0408\x07[\u0408\u0409\xA0Q\u0409\xA9\u040A\u0412\xC4c\u040B\u0412\xA2R\u040C\u0412\xACW\u040D\u040E\x07\u040E\u040F\xACW\u040F\u0410\x07\u0410\u0412\u0411\u040A\u0411\u040B\u0411\u040C\u0411\u040D\u0412\xAB\u0413\u0418\xC4c\u0414\u0415\x07\u0415\u0417\xC4c\u0416\u0414\u0417\u041A\u0418\u0416\u0418\u0419\u0419\xAD\u041A\u0418\u041B\u041C\xA0Q\u041C\u041D\x07\\\u041D\u041E\xC4c\u041E\xAF\u041F\u0420\xC4c\u0420\u0421\x07H\u0421\xB1\u0422\u0423\x07]\u0423\u0427\xA0Q\u0424\u0426\xB4[\u0425\u0424\u0426\u0429\u0427\u0425\u0427\u0428\u0428\xB3\u0429\u0427\u042A\u042B\x07^\u042B\u042C\xBE`\u042C\u042D\x9CO\u042D\u0431\u042E\u042F\x07_\u042F\u0431\x9CO\u0430\u042A\u0430\u042E\u0431\xB5\u0432\u0433\x07(\u0433\u0434\xC4c\u0434\u0436\x07\u0435\u0437\xACW\u0436\u0435\u0436\u0437\u0437\u0438\u0438\u043A\x07\u0439\u043B\xB8]\u043A\u0439\u043A\u043B\u043B\u043C\u043C\u043D\x9CO\u043D\xB7\u043E\u043F\x07`\u043F\u0440"; + SolidityParser._serializedATNSegment2 = "\xACW\u0440\xB9\u0441\u0444\x07\u0442\u0445\x9CO\u0443\u0445\xA0Q\u0444\u0442\u0444\u0443\u0445\u0446\u0446\u0449\xA0Q\u0447\u044A\x9CO\u0448\u044A\xA0Q\u0449\u0447\u0449\u0448\u044A\u044B\u044B\u044C\x9CO\u044C\xBB\u044D\u044E\x075\u044E\u044F\xA0Q\u044F\u0450\x9CO\u0450\xBD\u0451\u0457\xCAf\u0452\u0457\x07i\u0453\u0457\x07j\u0454\u0457\xC6d\u0455\u0457\x07h\u0456\u0451\u0456\u0452\u0456\u0453\u0456\u0454\u0456\u0455\u0457\xBF\u0458\u045A\x07\u0459\u045B\x8EH\u045A\u0459\u045A\u045B\u045B\u0462\u045C\u045E\x07\u045D\u045F\x8EH\u045E\u045D\u045E\u045F\u045F\u0461\u0460\u045C\u0461\u0464\u0462\u0460\u0462\u0463\u0463\u0465\u0464\u0462\u0465\u0473\x07\u0466\u046F\x07,\u0467\u046C\x8EH\u0468\u0469\x07\u0469\u046B\x8EH\u046A\u0468\u046B\u046E\u046C\u046A\u046C\u046D\u046D\u0470\u046E\u046C\u046F\u0467\u046F\u0470\u0470\u0471\u0471\u0473\x07-\u0472\u0458\u0472\u0466\u0473\xC1\u0474\u0476 \u0475\u0477\x07k\u0476\u0475\u0476\u0477\u0477\xC3\u0478\u0479 \u0479\xC5\u047A\u047C\x07l\u047B\u047A\u047C\u047D\u047D\u047B\u047D\u047E\u047E\xC7\u047F\u048B\x07b\u0480\u0481\x07\u0481\u0486P)\u0482\u0483\x07\u0483\u0485P)\u0484\u0482\u0485\u0488\u0486\u0484\u0486\u0487\u0487\u0489\u0488\u0486\u0489\u048A\x07\u048A\u048C\u048B\u0480\u048B\u048C\u048C\xC9\u048D\u048F\x07\x83\u048E\u048D\u048F\u0490\u0490\u048E\u0490\u0491\u0491\xCB\x84\xD6\xD8\xE7\xEB\xF0\xF6\xFA\xFD\u0102\u0108\u010F\u0113\u0120\u0128\u012D\u0137\u013A\u0140\u0148\u014B\u0156\u015F\u0161\u0167\u0182\u0185\u0190\u0195\u019A\u01A8\u01AB\u01B2\u01B6\u01B8\u01BD\u01C2\u01C5\u01CB\u01CF\u01D3\u01D8\u01E5\u01E7\u01EE\u01F8\u01FE\u0209\u020C\u0212\u0215\u021D\u0220\u0226\u0229\u0231\u0234\u023A\u023E\u0249\u024E\u0253\u025B\u0260\u0266\u026B\u0278\u027A\u027F\u0289\u029D\u02A9\u02AE\u02B4\u02B8\u02BB\u02C7\u02D0\u02D4\u02D7\u02DE\u02E4\u02FA\u0310\u0314\u0319\u031D\u0321\u0326\u032B\u032F\u0347\u037D\u0381\u0391\u0393\u039F\u03A6\u03AE\u03B2\u03BA\u03BE\u03C0\u03CB\u03E1\u03E6\u03F0\u03F4\u03FA\u03FE\u0404\u0411\u0418\u0427\u0430\u0436\u043A\u0444\u0449\u0456\u045A\u045E\u0462\u046C\u046F\u0472\u0476\u047D\u0486\u048B\u0490"; SolidityParser._serializedATN = Utils2.join([ _SolidityParser._serializedATNSegment0, _SolidityParser._serializedATNSegment1, @@ -29431,11 +29548,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } }; var UsingForObjectContext = class extends import_ParserRuleContext.ParserRuleContext { - userDefinedTypeName(i) { + userDefinedTypeName() { + return this.tryGetRuleContext(0, UserDefinedTypeNameContext); + } + usingForObjectDirective(i) { if (i === void 0) { - return this.getRuleContexts(UserDefinedTypeNameContext); + return this.getRuleContexts(UsingForObjectDirectiveContext); } else { - return this.getRuleContext(i, UserDefinedTypeNameContext); + return this.getRuleContext(i, UsingForObjectDirectiveContext); } } constructor(parent, invokingState) { @@ -29462,6 +29582,62 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } } }; + var UsingForObjectDirectiveContext = class extends import_ParserRuleContext.ParserRuleContext { + userDefinedTypeName() { + return this.getRuleContext(0, UserDefinedTypeNameContext); + } + userDefinableOperators() { + return this.tryGetRuleContext(0, UserDefinableOperatorsContext); + } + constructor(parent, invokingState) { + super(parent, invokingState); + } + get ruleIndex() { + return SolidityParser.RULE_usingForObjectDirective; + } + enterRule(listener) { + if (listener.enterUsingForObjectDirective) { + listener.enterUsingForObjectDirective(this); + } + } + exitRule(listener) { + if (listener.exitUsingForObjectDirective) { + listener.exitUsingForObjectDirective(this); + } + } + accept(visitor) { + if (visitor.visitUsingForObjectDirective) { + return visitor.visitUsingForObjectDirective(this); + } else { + return visitor.visitChildren(this); + } + } + }; + var UserDefinableOperatorsContext = class extends import_ParserRuleContext.ParserRuleContext { + constructor(parent, invokingState) { + super(parent, invokingState); + } + get ruleIndex() { + return SolidityParser.RULE_userDefinableOperators; + } + enterRule(listener) { + if (listener.enterUserDefinableOperators) { + listener.enterUserDefinableOperators(this); + } + } + exitRule(listener) { + if (listener.exitUserDefinableOperators) { + listener.exitUserDefinableOperators(this); + } + } + accept(visitor) { + if (visitor.visitUserDefinableOperators) { + return visitor.visitUserDefinableOperators(this); + } else { + return visitor.visitChildren(this); + } + } + }; var StructDefinitionContext = class extends import_ParserRuleContext.ParserRuleContext { identifier() { return this.getRuleContext(0, IdentifierContext); @@ -30204,6 +30380,12 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv typeName() { return this.getRuleContext(0, TypeNameContext); } + mappingKeyName() { + return this.tryGetRuleContext(0, MappingKeyNameContext); + } + mappingValueName() { + return this.tryGetRuleContext(0, MappingValueNameContext); + } constructor(parent, invokingState) { super(parent, invokingState); } @@ -30228,6 +30410,62 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } } }; + var MappingKeyNameContext = class extends import_ParserRuleContext.ParserRuleContext { + identifier() { + return this.getRuleContext(0, IdentifierContext); + } + constructor(parent, invokingState) { + super(parent, invokingState); + } + get ruleIndex() { + return SolidityParser.RULE_mappingKeyName; + } + enterRule(listener) { + if (listener.enterMappingKeyName) { + listener.enterMappingKeyName(this); + } + } + exitRule(listener) { + if (listener.exitMappingKeyName) { + listener.exitMappingKeyName(this); + } + } + accept(visitor) { + if (visitor.visitMappingKeyName) { + return visitor.visitMappingKeyName(this); + } else { + return visitor.visitChildren(this); + } + } + }; + var MappingValueNameContext = class extends import_ParserRuleContext.ParserRuleContext { + identifier() { + return this.getRuleContext(0, IdentifierContext); + } + constructor(parent, invokingState) { + super(parent, invokingState); + } + get ruleIndex() { + return SolidityParser.RULE_mappingValueName; + } + enterRule(listener) { + if (listener.enterMappingValueName) { + listener.enterMappingValueName(this); + } + } + exitRule(listener) { + if (listener.exitMappingValueName) { + listener.exitMappingValueName(this); + } + } + accept(visitor) { + if (visitor.visitMappingValueName) { + return visitor.visitMappingValueName(this); + } else { + return visitor.visitChildren(this); + } + } + }; var FunctionTypeNameContext = class extends import_ParserRuleContext.ParserRuleContext { functionTypeParameterList(i) { if (i === void 0) { @@ -31440,9 +31678,6 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv LeaveKeyword() { return this.tryGetToken(SolidityParser.LeaveKeyword, 0); } - subAssembly() { - return this.tryGetRuleContext(0, SubAssemblyContext); - } numberLiteral() { return this.tryGetRuleContext(0, NumberLiteralContext); } @@ -31978,6 +32213,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv hexLiteral() { return this.tryGetRuleContext(0, HexLiteralContext); } + BooleanLiteral() { + return this.tryGetToken(SolidityParser.BooleanLiteral, 0); + } constructor(parent, invokingState) { super(parent, invokingState); } @@ -32002,37 +32240,6 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } } }; - var SubAssemblyContext = class extends import_ParserRuleContext.ParserRuleContext { - identifier() { - return this.getRuleContext(0, IdentifierContext); - } - assemblyBlock() { - return this.getRuleContext(0, AssemblyBlockContext); - } - constructor(parent, invokingState) { - super(parent, invokingState); - } - get ruleIndex() { - return SolidityParser.RULE_subAssembly; - } - enterRule(listener) { - if (listener.enterSubAssembly) { - listener.enterSubAssembly(this); - } - } - exitRule(listener) { - if (listener.exitSubAssembly) { - listener.exitSubAssembly(this); - } - } - accept(visitor) { - if (visitor.visitSubAssembly) { - return visitor.visitSubAssembly(this); - } else { - return visitor.visitChildren(this); - } - } - }; var TupleExpressionContext = class extends import_ParserRuleContext.ParserRuleContext { expression(i) { if (i === void 0) { @@ -32103,6 +32310,9 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv ReceiveKeyword() { return this.tryGetToken(SolidityParser.ReceiveKeyword, 0); } + GlobalKeyword() { + return this.tryGetToken(SolidityParser.GlobalKeyword, 0); + } ConstructorKeyword() { return this.tryGetToken(SolidityParser.ConstructorKeyword, 0); } @@ -32286,10 +32496,8 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv "AssemblySwitch", "AssemblyCase", "AssemblyFunctionDefinition", - "AssemblyFunctionReturns", "AssemblyFor", "AssemblyIf", - "SubAssembly", "TupleExpression", "NameValueExpression", "BooleanLiteral", @@ -32606,6 +32814,8 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv isConstructor = true; break; case "fallback": + parameters = ctx.parameterList().parameter().map((x) => this.visit(x)); + returnParameters = ctxReturnParameters !== void 0 ? this.visitReturnParameters(ctxReturnParameters) : null; visibility = "external"; isFallback = true; break; @@ -32743,24 +32953,38 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv typeName = this.visitTypeName(ctxTypeName); } const isGlobal = ctx.GlobalKeyword() !== void 0; + const usingForObjectCtx = ctx.usingForObject(); + const userDefinedTypeNameCtx = usingForObjectCtx.userDefinedTypeName(); let node; - const usingForObject = ctx.usingForObject(); - const firstChild = this._toText(usingForObject.getChild(0)); - if (firstChild === "{") { + if (userDefinedTypeNameCtx !== void 0) { node = { type: "UsingForDeclaration", isGlobal, typeName, - libraryName: null, - functions: usingForObject.userDefinedTypeName().map((x) => this._toText(x)) + libraryName: this._toText(userDefinedTypeNameCtx), + functions: [], + operators: [] }; } else { + const usingForObjectDirectives = usingForObjectCtx.usingForObjectDirective(); + const functions = []; + const operators = []; + for (const usingForObjectDirective of usingForObjectDirectives) { + functions.push(this._toText(usingForObjectDirective.userDefinedTypeName())); + const operator = usingForObjectDirective.userDefinableOperators(); + if (operator !== void 0) { + operators.push(this._toText(operator)); + } else { + operators.push(null); + } + } node = { type: "UsingForDeclaration", isGlobal, typeName, - libraryName: this._toText(usingForObject.userDefinedTypeName(0)), - functions: [] + libraryName: null, + functions, + operators }; } return this._addMeta(node, ctx); @@ -33029,10 +33253,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv } } visitMapping(ctx) { + const mappingKeyNameCtx = ctx.mappingKeyName(); + const mappingValueNameCtx = ctx.mappingValueName(); const node = { type: "Mapping", keyType: this.visitMappingKey(ctx.mappingKey()), - valueType: this.visitTypeName(ctx.typeName()) + keyName: mappingKeyNameCtx === void 0 ? null : this.visitIdentifier(mappingKeyNameCtx.identifier()), + valueType: this.visitTypeName(ctx.typeName()), + valueName: mappingValueNameCtx === void 0 ? null : this.visitIdentifier(mappingValueNameCtx.identifier()) }; return this._addMeta(node, ctx); } @@ -33377,7 +33605,7 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv buildVariableDeclarationList(ctx) { const variableDeclarations = ctx.variableDeclaration(); let i = 0; - return this._mapCommasToNulls(ctx.children).map((declOrNull) => { + return this._mapCommasToNulls(ctx.children ?? []).map((declOrNull) => { if (!declOrNull) { return null; } @@ -33460,16 +33688,14 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv buildEventParameterList(ctx) { return ctx.eventParameter().map((paramCtx) => { const type = this.visit(paramCtx.typeName()); - let name = null; - if (paramCtx.identifier()) { - name = this._toText(paramCtx.identifier()); - } + const identifier = paramCtx.identifier(); + const name = identifier ? this._toText(identifier) : null; return { type: "VariableDeclaration", typeName: type, name, isStateVar: false, - isIndexed: !!paramCtx.IndexedKeyword(0) + isIndexed: !!paramCtx.IndexedKeyword() }; }); } @@ -33563,6 +33789,13 @@ qrrrrrrrrrrsssssstttttttttuuuuuuuuuuvvvv }; return this._addMeta(node, ctx); } + if (ctx.BooleanLiteral()) { + const node = { + type: "BooleanLiteral", + value: this._toText(ctx.BooleanLiteral()) === "true" + }; + return this._addMeta(node, ctx); + } if (ctx.DecimalNumber()) { const node = { type: "DecimalNumber", @@ -42242,7 +42475,7 @@ O\fQ\x07\x07 } } }; - function parse(input, options = {}, parseListsener = {}) { + function parse(input, options = {}) { const inputStream = new import_antlr4ts.ANTLRInputStream(input); const lexer = new SolidityLexer(inputStream); const tokenStream = new import_antlr4ts.CommonTokenStream(lexer); @@ -42327,9 +42560,9 @@ O\fQ\x07\x07 if (typeof node !== "object" || node === null) { return false; } - const nodeAsAny = node; - if (Object.prototype.hasOwnProperty.call(nodeAsAny, "type") && typeof nodeAsAny.type === "string") { - return astNodeTypes.includes(nodeAsAny.type); + const nodeAsASTNode = node; + if (Object.prototype.hasOwnProperty.call(nodeAsASTNode, "type") && typeof nodeAsASTNode.type === "string") { + return astNodeTypes.includes(nodeAsASTNode.type); } return false; }