http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0f2c01c9/tapestry-webresources/src/main/resources/org/apache/tapestry5/webresources/internal/typescript.js
----------------------------------------------------------------------
diff --git 
a/tapestry-webresources/src/main/resources/org/apache/tapestry5/webresources/internal/typescript.js
 
b/tapestry-webresources/src/main/resources/org/apache/tapestry5/webresources/internal/typescript.js
new file mode 100644
index 0000000..eb75ba8
--- /dev/null
+++ 
b/tapestry-webresources/src/main/resources/org/apache/tapestry5/webresources/internal/typescript.js
@@ -0,0 +1,97680 @@
+/*! 
*****************************************************************************
+Copyright (c) Microsoft Corporation. All rights reserved. 
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+this file except in compliance with the License. You may obtain a copy of the
+License at http://www.apache.org/licenses/LICENSE-2.0  
+ 
+THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 
ANY
+KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, 
+MERCHANTABLITY OR NON-INFRINGEMENT. 
+ 
+See the Apache Version 2.0 License for specific language governing permissions
+and limitations under the License.
+***************************************************************************** 
*/
+
+"use strict";
+var __assign = (this && this.__assign) || Object.assign || function(t) {
+    for (var s, i = 1, n = arguments.length; i < n; i++) {
+        s = arguments[i];
+        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+            t[p] = s[p];
+    }
+    return t;
+};
+var __extends = (this && this.__extends) || (function () {
+    var extendStatics = Object.setPrototypeOf ||
+        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = 
b; }) ||
+        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = 
b[p]; };
+    return function (d, b) {
+        extendStatics(d, b);
+        function __() { this.constructor = d; }
+        d.prototype = b === null ? Object.create(b) : (__.prototype = 
b.prototype, new __());
+    };
+})();
+var ts;
+(function (ts) {
+    // token > SyntaxKind.Identifer => token is a keyword
+    // Also, If you add a new SyntaxKind be sure to keep the `Markers` section 
at the bottom in sync
+    var SyntaxKind;
+    (function (SyntaxKind) {
+        SyntaxKind[SyntaxKind["Unknown"] = 0] = "Unknown";
+        SyntaxKind[SyntaxKind["EndOfFileToken"] = 1] = "EndOfFileToken";
+        SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 2] = 
"SingleLineCommentTrivia";
+        SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 3] = 
"MultiLineCommentTrivia";
+        SyntaxKind[SyntaxKind["NewLineTrivia"] = 4] = "NewLineTrivia";
+        SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 5] = "WhitespaceTrivia";
+        // We detect and preserve #! on the first line
+        SyntaxKind[SyntaxKind["ShebangTrivia"] = 6] = "ShebangTrivia";
+        // We detect and provide better error recovery when we encounter a git 
merge marker.  This
+        // allows us to edit files with git-conflict markers in them in a much 
more pleasant manner.
+        SyntaxKind[SyntaxKind["ConflictMarkerTrivia"] = 7] = 
"ConflictMarkerTrivia";
+        // Literals
+        SyntaxKind[SyntaxKind["NumericLiteral"] = 8] = "NumericLiteral";
+        SyntaxKind[SyntaxKind["StringLiteral"] = 9] = "StringLiteral";
+        SyntaxKind[SyntaxKind["JsxText"] = 10] = "JsxText";
+        SyntaxKind[SyntaxKind["JsxTextAllWhiteSpaces"] = 11] = 
"JsxTextAllWhiteSpaces";
+        SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 12] = 
"RegularExpressionLiteral";
+        SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 13] = 
"NoSubstitutionTemplateLiteral";
+        // Pseudo-literals
+        SyntaxKind[SyntaxKind["TemplateHead"] = 14] = "TemplateHead";
+        SyntaxKind[SyntaxKind["TemplateMiddle"] = 15] = "TemplateMiddle";
+        SyntaxKind[SyntaxKind["TemplateTail"] = 16] = "TemplateTail";
+        // Punctuation
+        SyntaxKind[SyntaxKind["OpenBraceToken"] = 17] = "OpenBraceToken";
+        SyntaxKind[SyntaxKind["CloseBraceToken"] = 18] = "CloseBraceToken";
+        SyntaxKind[SyntaxKind["OpenParenToken"] = 19] = "OpenParenToken";
+        SyntaxKind[SyntaxKind["CloseParenToken"] = 20] = "CloseParenToken";
+        SyntaxKind[SyntaxKind["OpenBracketToken"] = 21] = "OpenBracketToken";
+        SyntaxKind[SyntaxKind["CloseBracketToken"] = 22] = "CloseBracketToken";
+        SyntaxKind[SyntaxKind["DotToken"] = 23] = "DotToken";
+        SyntaxKind[SyntaxKind["DotDotDotToken"] = 24] = "DotDotDotToken";
+        SyntaxKind[SyntaxKind["SemicolonToken"] = 25] = "SemicolonToken";
+        SyntaxKind[SyntaxKind["CommaToken"] = 26] = "CommaToken";
+        SyntaxKind[SyntaxKind["LessThanToken"] = 27] = "LessThanToken";
+        SyntaxKind[SyntaxKind["LessThanSlashToken"] = 28] = 
"LessThanSlashToken";
+        SyntaxKind[SyntaxKind["GreaterThanToken"] = 29] = "GreaterThanToken";
+        SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 30] = 
"LessThanEqualsToken";
+        SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 31] = 
"GreaterThanEqualsToken";
+        SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 32] = "EqualsEqualsToken";
+        SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 33] = 
"ExclamationEqualsToken";
+        SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 34] = 
"EqualsEqualsEqualsToken";
+        SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 35] = 
"ExclamationEqualsEqualsToken";
+        SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 36] = 
"EqualsGreaterThanToken";
+        SyntaxKind[SyntaxKind["PlusToken"] = 37] = "PlusToken";
+        SyntaxKind[SyntaxKind["MinusToken"] = 38] = "MinusToken";
+        SyntaxKind[SyntaxKind["AsteriskToken"] = 39] = "AsteriskToken";
+        SyntaxKind[SyntaxKind["AsteriskAsteriskToken"] = 40] = 
"AsteriskAsteriskToken";
+        SyntaxKind[SyntaxKind["SlashToken"] = 41] = "SlashToken";
+        SyntaxKind[SyntaxKind["PercentToken"] = 42] = "PercentToken";
+        SyntaxKind[SyntaxKind["PlusPlusToken"] = 43] = "PlusPlusToken";
+        SyntaxKind[SyntaxKind["MinusMinusToken"] = 44] = "MinusMinusToken";
+        SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 45] = 
"LessThanLessThanToken";
+        SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 46] = 
"GreaterThanGreaterThanToken";
+        SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 47] 
= "GreaterThanGreaterThanGreaterThanToken";
+        SyntaxKind[SyntaxKind["AmpersandToken"] = 48] = "AmpersandToken";
+        SyntaxKind[SyntaxKind["BarToken"] = 49] = "BarToken";
+        SyntaxKind[SyntaxKind["CaretToken"] = 50] = "CaretToken";
+        SyntaxKind[SyntaxKind["ExclamationToken"] = 51] = "ExclamationToken";
+        SyntaxKind[SyntaxKind["TildeToken"] = 52] = "TildeToken";
+        SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 53] = 
"AmpersandAmpersandToken";
+        SyntaxKind[SyntaxKind["BarBarToken"] = 54] = "BarBarToken";
+        SyntaxKind[SyntaxKind["QuestionToken"] = 55] = "QuestionToken";
+        SyntaxKind[SyntaxKind["ColonToken"] = 56] = "ColonToken";
+        SyntaxKind[SyntaxKind["AtToken"] = 57] = "AtToken";
+        // Assignments
+        SyntaxKind[SyntaxKind["EqualsToken"] = 58] = "EqualsToken";
+        SyntaxKind[SyntaxKind["PlusEqualsToken"] = 59] = "PlusEqualsToken";
+        SyntaxKind[SyntaxKind["MinusEqualsToken"] = 60] = "MinusEqualsToken";
+        SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 61] = 
"AsteriskEqualsToken";
+        SyntaxKind[SyntaxKind["AsteriskAsteriskEqualsToken"] = 62] = 
"AsteriskAsteriskEqualsToken";
+        SyntaxKind[SyntaxKind["SlashEqualsToken"] = 63] = "SlashEqualsToken";
+        SyntaxKind[SyntaxKind["PercentEqualsToken"] = 64] = 
"PercentEqualsToken";
+        SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 65] = 
"LessThanLessThanEqualsToken";
+        SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 66] = 
"GreaterThanGreaterThanEqualsToken";
+        SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] 
= 67] = "GreaterThanGreaterThanGreaterThanEqualsToken";
+        SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 68] = 
"AmpersandEqualsToken";
+        SyntaxKind[SyntaxKind["BarEqualsToken"] = 69] = "BarEqualsToken";
+        SyntaxKind[SyntaxKind["CaretEqualsToken"] = 70] = "CaretEqualsToken";
+        // Identifiers
+        SyntaxKind[SyntaxKind["Identifier"] = 71] = "Identifier";
+        // Reserved words
+        SyntaxKind[SyntaxKind["BreakKeyword"] = 72] = "BreakKeyword";
+        SyntaxKind[SyntaxKind["CaseKeyword"] = 73] = "CaseKeyword";
+        SyntaxKind[SyntaxKind["CatchKeyword"] = 74] = "CatchKeyword";
+        SyntaxKind[SyntaxKind["ClassKeyword"] = 75] = "ClassKeyword";
+        SyntaxKind[SyntaxKind["ConstKeyword"] = 76] = "ConstKeyword";
+        SyntaxKind[SyntaxKind["ContinueKeyword"] = 77] = "ContinueKeyword";
+        SyntaxKind[SyntaxKind["DebuggerKeyword"] = 78] = "DebuggerKeyword";
+        SyntaxKind[SyntaxKind["DefaultKeyword"] = 79] = "DefaultKeyword";
+        SyntaxKind[SyntaxKind["DeleteKeyword"] = 80] = "DeleteKeyword";
+        SyntaxKind[SyntaxKind["DoKeyword"] = 81] = "DoKeyword";
+        SyntaxKind[SyntaxKind["ElseKeyword"] = 82] = "ElseKeyword";
+        SyntaxKind[SyntaxKind["EnumKeyword"] = 83] = "EnumKeyword";
+        SyntaxKind[SyntaxKind["ExportKeyword"] = 84] = "ExportKeyword";
+        SyntaxKind[SyntaxKind["ExtendsKeyword"] = 85] = "ExtendsKeyword";
+        SyntaxKind[SyntaxKind["FalseKeyword"] = 86] = "FalseKeyword";
+        SyntaxKind[SyntaxKind["FinallyKeyword"] = 87] = "FinallyKeyword";
+        SyntaxKind[SyntaxKind["ForKeyword"] = 88] = "ForKeyword";
+        SyntaxKind[SyntaxKind["FunctionKeyword"] = 89] = "FunctionKeyword";
+        SyntaxKind[SyntaxKind["IfKeyword"] = 90] = "IfKeyword";
+        SyntaxKind[SyntaxKind["ImportKeyword"] = 91] = "ImportKeyword";
+        SyntaxKind[SyntaxKind["InKeyword"] = 92] = "InKeyword";
+        SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 93] = "InstanceOfKeyword";
+        SyntaxKind[SyntaxKind["NewKeyword"] = 94] = "NewKeyword";
+        SyntaxKind[SyntaxKind["NullKeyword"] = 95] = "NullKeyword";
+        SyntaxKind[SyntaxKind["ReturnKeyword"] = 96] = "ReturnKeyword";
+        SyntaxKind[SyntaxKind["SuperKeyword"] = 97] = "SuperKeyword";
+        SyntaxKind[SyntaxKind["SwitchKeyword"] = 98] = "SwitchKeyword";
+        SyntaxKind[SyntaxKind["ThisKeyword"] = 99] = "ThisKeyword";
+        SyntaxKind[SyntaxKind["ThrowKeyword"] = 100] = "ThrowKeyword";
+        SyntaxKind[SyntaxKind["TrueKeyword"] = 101] = "TrueKeyword";
+        SyntaxKind[SyntaxKind["TryKeyword"] = 102] = "TryKeyword";
+        SyntaxKind[SyntaxKind["TypeOfKeyword"] = 103] = "TypeOfKeyword";
+        SyntaxKind[SyntaxKind["VarKeyword"] = 104] = "VarKeyword";
+        SyntaxKind[SyntaxKind["VoidKeyword"] = 105] = "VoidKeyword";
+        SyntaxKind[SyntaxKind["WhileKeyword"] = 106] = "WhileKeyword";
+        SyntaxKind[SyntaxKind["WithKeyword"] = 107] = "WithKeyword";
+        // Strict mode reserved words
+        SyntaxKind[SyntaxKind["ImplementsKeyword"] = 108] = 
"ImplementsKeyword";
+        SyntaxKind[SyntaxKind["InterfaceKeyword"] = 109] = "InterfaceKeyword";
+        SyntaxKind[SyntaxKind["LetKeyword"] = 110] = "LetKeyword";
+        SyntaxKind[SyntaxKind["PackageKeyword"] = 111] = "PackageKeyword";
+        SyntaxKind[SyntaxKind["PrivateKeyword"] = 112] = "PrivateKeyword";
+        SyntaxKind[SyntaxKind["ProtectedKeyword"] = 113] = "ProtectedKeyword";
+        SyntaxKind[SyntaxKind["PublicKeyword"] = 114] = "PublicKeyword";
+        SyntaxKind[SyntaxKind["StaticKeyword"] = 115] = "StaticKeyword";
+        SyntaxKind[SyntaxKind["YieldKeyword"] = 116] = "YieldKeyword";
+        // Contextual keywords
+        SyntaxKind[SyntaxKind["AbstractKeyword"] = 117] = "AbstractKeyword";
+        SyntaxKind[SyntaxKind["AsKeyword"] = 118] = "AsKeyword";
+        SyntaxKind[SyntaxKind["AnyKeyword"] = 119] = "AnyKeyword";
+        SyntaxKind[SyntaxKind["AsyncKeyword"] = 120] = "AsyncKeyword";
+        SyntaxKind[SyntaxKind["AwaitKeyword"] = 121] = "AwaitKeyword";
+        SyntaxKind[SyntaxKind["BooleanKeyword"] = 122] = "BooleanKeyword";
+        SyntaxKind[SyntaxKind["ConstructorKeyword"] = 123] = 
"ConstructorKeyword";
+        SyntaxKind[SyntaxKind["DeclareKeyword"] = 124] = "DeclareKeyword";
+        SyntaxKind[SyntaxKind["GetKeyword"] = 125] = "GetKeyword";
+        SyntaxKind[SyntaxKind["IsKeyword"] = 126] = "IsKeyword";
+        SyntaxKind[SyntaxKind["KeyOfKeyword"] = 127] = "KeyOfKeyword";
+        SyntaxKind[SyntaxKind["ModuleKeyword"] = 128] = "ModuleKeyword";
+        SyntaxKind[SyntaxKind["NamespaceKeyword"] = 129] = "NamespaceKeyword";
+        SyntaxKind[SyntaxKind["NeverKeyword"] = 130] = "NeverKeyword";
+        SyntaxKind[SyntaxKind["ReadonlyKeyword"] = 131] = "ReadonlyKeyword";
+        SyntaxKind[SyntaxKind["RequireKeyword"] = 132] = "RequireKeyword";
+        SyntaxKind[SyntaxKind["NumberKeyword"] = 133] = "NumberKeyword";
+        SyntaxKind[SyntaxKind["ObjectKeyword"] = 134] = "ObjectKeyword";
+        SyntaxKind[SyntaxKind["SetKeyword"] = 135] = "SetKeyword";
+        SyntaxKind[SyntaxKind["StringKeyword"] = 136] = "StringKeyword";
+        SyntaxKind[SyntaxKind["SymbolKeyword"] = 137] = "SymbolKeyword";
+        SyntaxKind[SyntaxKind["TypeKeyword"] = 138] = "TypeKeyword";
+        SyntaxKind[SyntaxKind["UndefinedKeyword"] = 139] = "UndefinedKeyword";
+        SyntaxKind[SyntaxKind["FromKeyword"] = 140] = "FromKeyword";
+        SyntaxKind[SyntaxKind["GlobalKeyword"] = 141] = "GlobalKeyword";
+        SyntaxKind[SyntaxKind["OfKeyword"] = 142] = "OfKeyword";
+        // Parse tree nodes
+        // Names
+        SyntaxKind[SyntaxKind["QualifiedName"] = 143] = "QualifiedName";
+        SyntaxKind[SyntaxKind["ComputedPropertyName"] = 144] = 
"ComputedPropertyName";
+        // Signature elements
+        SyntaxKind[SyntaxKind["TypeParameter"] = 145] = "TypeParameter";
+        SyntaxKind[SyntaxKind["Parameter"] = 146] = "Parameter";
+        SyntaxKind[SyntaxKind["Decorator"] = 147] = "Decorator";
+        // TypeMember
+        SyntaxKind[SyntaxKind["PropertySignature"] = 148] = 
"PropertySignature";
+        SyntaxKind[SyntaxKind["PropertyDeclaration"] = 149] = 
"PropertyDeclaration";
+        SyntaxKind[SyntaxKind["MethodSignature"] = 150] = "MethodSignature";
+        SyntaxKind[SyntaxKind["MethodDeclaration"] = 151] = 
"MethodDeclaration";
+        SyntaxKind[SyntaxKind["Constructor"] = 152] = "Constructor";
+        SyntaxKind[SyntaxKind["GetAccessor"] = 153] = "GetAccessor";
+        SyntaxKind[SyntaxKind["SetAccessor"] = 154] = "SetAccessor";
+        SyntaxKind[SyntaxKind["CallSignature"] = 155] = "CallSignature";
+        SyntaxKind[SyntaxKind["ConstructSignature"] = 156] = 
"ConstructSignature";
+        SyntaxKind[SyntaxKind["IndexSignature"] = 157] = "IndexSignature";
+        // Type
+        SyntaxKind[SyntaxKind["TypePredicate"] = 158] = "TypePredicate";
+        SyntaxKind[SyntaxKind["TypeReference"] = 159] = "TypeReference";
+        SyntaxKind[SyntaxKind["FunctionType"] = 160] = "FunctionType";
+        SyntaxKind[SyntaxKind["ConstructorType"] = 161] = "ConstructorType";
+        SyntaxKind[SyntaxKind["TypeQuery"] = 162] = "TypeQuery";
+        SyntaxKind[SyntaxKind["TypeLiteral"] = 163] = "TypeLiteral";
+        SyntaxKind[SyntaxKind["ArrayType"] = 164] = "ArrayType";
+        SyntaxKind[SyntaxKind["TupleType"] = 165] = "TupleType";
+        SyntaxKind[SyntaxKind["UnionType"] = 166] = "UnionType";
+        SyntaxKind[SyntaxKind["IntersectionType"] = 167] = "IntersectionType";
+        SyntaxKind[SyntaxKind["ParenthesizedType"] = 168] = 
"ParenthesizedType";
+        SyntaxKind[SyntaxKind["ThisType"] = 169] = "ThisType";
+        SyntaxKind[SyntaxKind["TypeOperator"] = 170] = "TypeOperator";
+        SyntaxKind[SyntaxKind["IndexedAccessType"] = 171] = 
"IndexedAccessType";
+        SyntaxKind[SyntaxKind["MappedType"] = 172] = "MappedType";
+        SyntaxKind[SyntaxKind["LiteralType"] = 173] = "LiteralType";
+        // Binding patterns
+        SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 174] = 
"ObjectBindingPattern";
+        SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 175] = 
"ArrayBindingPattern";
+        SyntaxKind[SyntaxKind["BindingElement"] = 176] = "BindingElement";
+        // Expression
+        SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 177] = 
"ArrayLiteralExpression";
+        SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 178] = 
"ObjectLiteralExpression";
+        SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 179] = 
"PropertyAccessExpression";
+        SyntaxKind[SyntaxKind["ElementAccessExpression"] = 180] = 
"ElementAccessExpression";
+        SyntaxKind[SyntaxKind["CallExpression"] = 181] = "CallExpression";
+        SyntaxKind[SyntaxKind["NewExpression"] = 182] = "NewExpression";
+        SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 183] = 
"TaggedTemplateExpression";
+        SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 184] = 
"TypeAssertionExpression";
+        SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 185] = 
"ParenthesizedExpression";
+        SyntaxKind[SyntaxKind["FunctionExpression"] = 186] = 
"FunctionExpression";
+        SyntaxKind[SyntaxKind["ArrowFunction"] = 187] = "ArrowFunction";
+        SyntaxKind[SyntaxKind["DeleteExpression"] = 188] = "DeleteExpression";
+        SyntaxKind[SyntaxKind["TypeOfExpression"] = 189] = "TypeOfExpression";
+        SyntaxKind[SyntaxKind["VoidExpression"] = 190] = "VoidExpression";
+        SyntaxKind[SyntaxKind["AwaitExpression"] = 191] = "AwaitExpression";
+        SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 192] = 
"PrefixUnaryExpression";
+        SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 193] = 
"PostfixUnaryExpression";
+        SyntaxKind[SyntaxKind["BinaryExpression"] = 194] = "BinaryExpression";
+        SyntaxKind[SyntaxKind["ConditionalExpression"] = 195] = 
"ConditionalExpression";
+        SyntaxKind[SyntaxKind["TemplateExpression"] = 196] = 
"TemplateExpression";
+        SyntaxKind[SyntaxKind["YieldExpression"] = 197] = "YieldExpression";
+        SyntaxKind[SyntaxKind["SpreadElement"] = 198] = "SpreadElement";
+        SyntaxKind[SyntaxKind["ClassExpression"] = 199] = "ClassExpression";
+        SyntaxKind[SyntaxKind["OmittedExpression"] = 200] = 
"OmittedExpression";
+        SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 201] = 
"ExpressionWithTypeArguments";
+        SyntaxKind[SyntaxKind["AsExpression"] = 202] = "AsExpression";
+        SyntaxKind[SyntaxKind["NonNullExpression"] = 203] = 
"NonNullExpression";
+        SyntaxKind[SyntaxKind["MetaProperty"] = 204] = "MetaProperty";
+        // Misc
+        SyntaxKind[SyntaxKind["TemplateSpan"] = 205] = "TemplateSpan";
+        SyntaxKind[SyntaxKind["SemicolonClassElement"] = 206] = 
"SemicolonClassElement";
+        // Element
+        SyntaxKind[SyntaxKind["Block"] = 207] = "Block";
+        SyntaxKind[SyntaxKind["VariableStatement"] = 208] = 
"VariableStatement";
+        SyntaxKind[SyntaxKind["EmptyStatement"] = 209] = "EmptyStatement";
+        SyntaxKind[SyntaxKind["ExpressionStatement"] = 210] = 
"ExpressionStatement";
+        SyntaxKind[SyntaxKind["IfStatement"] = 211] = "IfStatement";
+        SyntaxKind[SyntaxKind["DoStatement"] = 212] = "DoStatement";
+        SyntaxKind[SyntaxKind["WhileStatement"] = 213] = "WhileStatement";
+        SyntaxKind[SyntaxKind["ForStatement"] = 214] = "ForStatement";
+        SyntaxKind[SyntaxKind["ForInStatement"] = 215] = "ForInStatement";
+        SyntaxKind[SyntaxKind["ForOfStatement"] = 216] = "ForOfStatement";
+        SyntaxKind[SyntaxKind["ContinueStatement"] = 217] = 
"ContinueStatement";
+        SyntaxKind[SyntaxKind["BreakStatement"] = 218] = "BreakStatement";
+        SyntaxKind[SyntaxKind["ReturnStatement"] = 219] = "ReturnStatement";
+        SyntaxKind[SyntaxKind["WithStatement"] = 220] = "WithStatement";
+        SyntaxKind[SyntaxKind["SwitchStatement"] = 221] = "SwitchStatement";
+        SyntaxKind[SyntaxKind["LabeledStatement"] = 222] = "LabeledStatement";
+        SyntaxKind[SyntaxKind["ThrowStatement"] = 223] = "ThrowStatement";
+        SyntaxKind[SyntaxKind["TryStatement"] = 224] = "TryStatement";
+        SyntaxKind[SyntaxKind["DebuggerStatement"] = 225] = 
"DebuggerStatement";
+        SyntaxKind[SyntaxKind["VariableDeclaration"] = 226] = 
"VariableDeclaration";
+        SyntaxKind[SyntaxKind["VariableDeclarationList"] = 227] = 
"VariableDeclarationList";
+        SyntaxKind[SyntaxKind["FunctionDeclaration"] = 228] = 
"FunctionDeclaration";
+        SyntaxKind[SyntaxKind["ClassDeclaration"] = 229] = "ClassDeclaration";
+        SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 230] = 
"InterfaceDeclaration";
+        SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 231] = 
"TypeAliasDeclaration";
+        SyntaxKind[SyntaxKind["EnumDeclaration"] = 232] = "EnumDeclaration";
+        SyntaxKind[SyntaxKind["ModuleDeclaration"] = 233] = 
"ModuleDeclaration";
+        SyntaxKind[SyntaxKind["ModuleBlock"] = 234] = "ModuleBlock";
+        SyntaxKind[SyntaxKind["CaseBlock"] = 235] = "CaseBlock";
+        SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 236] = 
"NamespaceExportDeclaration";
+        SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 237] = 
"ImportEqualsDeclaration";
+        SyntaxKind[SyntaxKind["ImportDeclaration"] = 238] = 
"ImportDeclaration";
+        SyntaxKind[SyntaxKind["ImportClause"] = 239] = "ImportClause";
+        SyntaxKind[SyntaxKind["NamespaceImport"] = 240] = "NamespaceImport";
+        SyntaxKind[SyntaxKind["NamedImports"] = 241] = "NamedImports";
+        SyntaxKind[SyntaxKind["ImportSpecifier"] = 242] = "ImportSpecifier";
+        SyntaxKind[SyntaxKind["ExportAssignment"] = 243] = "ExportAssignment";
+        SyntaxKind[SyntaxKind["ExportDeclaration"] = 244] = 
"ExportDeclaration";
+        SyntaxKind[SyntaxKind["NamedExports"] = 245] = "NamedExports";
+        SyntaxKind[SyntaxKind["ExportSpecifier"] = 246] = "ExportSpecifier";
+        SyntaxKind[SyntaxKind["MissingDeclaration"] = 247] = 
"MissingDeclaration";
+        // Module references
+        SyntaxKind[SyntaxKind["ExternalModuleReference"] = 248] = 
"ExternalModuleReference";
+        // JSX
+        SyntaxKind[SyntaxKind["JsxElement"] = 249] = "JsxElement";
+        SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 250] = 
"JsxSelfClosingElement";
+        SyntaxKind[SyntaxKind["JsxOpeningElement"] = 251] = 
"JsxOpeningElement";
+        SyntaxKind[SyntaxKind["JsxClosingElement"] = 252] = 
"JsxClosingElement";
+        SyntaxKind[SyntaxKind["JsxAttribute"] = 253] = "JsxAttribute";
+        SyntaxKind[SyntaxKind["JsxAttributes"] = 254] = "JsxAttributes";
+        SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 255] = 
"JsxSpreadAttribute";
+        SyntaxKind[SyntaxKind["JsxExpression"] = 256] = "JsxExpression";
+        // Clauses
+        SyntaxKind[SyntaxKind["CaseClause"] = 257] = "CaseClause";
+        SyntaxKind[SyntaxKind["DefaultClause"] = 258] = "DefaultClause";
+        SyntaxKind[SyntaxKind["HeritageClause"] = 259] = "HeritageClause";
+        SyntaxKind[SyntaxKind["CatchClause"] = 260] = "CatchClause";
+        // Property assignments
+        SyntaxKind[SyntaxKind["PropertyAssignment"] = 261] = 
"PropertyAssignment";
+        SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 262] = 
"ShorthandPropertyAssignment";
+        SyntaxKind[SyntaxKind["SpreadAssignment"] = 263] = "SpreadAssignment";
+        // Enum
+        SyntaxKind[SyntaxKind["EnumMember"] = 264] = "EnumMember";
+        // Top-level nodes
+        SyntaxKind[SyntaxKind["SourceFile"] = 265] = "SourceFile";
+        SyntaxKind[SyntaxKind["Bundle"] = 266] = "Bundle";
+        // JSDoc nodes
+        SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 267] = 
"JSDocTypeExpression";
+        // The * type
+        SyntaxKind[SyntaxKind["JSDocAllType"] = 268] = "JSDocAllType";
+        // The ? type
+        SyntaxKind[SyntaxKind["JSDocUnknownType"] = 269] = "JSDocUnknownType";
+        SyntaxKind[SyntaxKind["JSDocNullableType"] = 270] = 
"JSDocNullableType";
+        SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 271] = 
"JSDocNonNullableType";
+        SyntaxKind[SyntaxKind["JSDocOptionalType"] = 272] = 
"JSDocOptionalType";
+        SyntaxKind[SyntaxKind["JSDocFunctionType"] = 273] = 
"JSDocFunctionType";
+        SyntaxKind[SyntaxKind["JSDocVariadicType"] = 274] = 
"JSDocVariadicType";
+        SyntaxKind[SyntaxKind["JSDocComment"] = 275] = "JSDocComment";
+        SyntaxKind[SyntaxKind["JSDocTag"] = 276] = "JSDocTag";
+        SyntaxKind[SyntaxKind["JSDocAugmentsTag"] = 277] = "JSDocAugmentsTag";
+        SyntaxKind[SyntaxKind["JSDocClassTag"] = 278] = "JSDocClassTag";
+        SyntaxKind[SyntaxKind["JSDocParameterTag"] = 279] = 
"JSDocParameterTag";
+        SyntaxKind[SyntaxKind["JSDocReturnTag"] = 280] = "JSDocReturnTag";
+        SyntaxKind[SyntaxKind["JSDocTypeTag"] = 281] = "JSDocTypeTag";
+        SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 282] = "JSDocTemplateTag";
+        SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 283] = "JSDocTypedefTag";
+        SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 284] = "JSDocPropertyTag";
+        SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 285] = "JSDocTypeLiteral";
+        // Synthesized list
+        SyntaxKind[SyntaxKind["SyntaxList"] = 286] = "SyntaxList";
+        // Transformation nodes
+        SyntaxKind[SyntaxKind["NotEmittedStatement"] = 287] = 
"NotEmittedStatement";
+        SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 288] = 
"PartiallyEmittedExpression";
+        SyntaxKind[SyntaxKind["CommaListExpression"] = 289] = 
"CommaListExpression";
+        SyntaxKind[SyntaxKind["MergeDeclarationMarker"] = 290] = 
"MergeDeclarationMarker";
+        SyntaxKind[SyntaxKind["EndOfDeclarationMarker"] = 291] = 
"EndOfDeclarationMarker";
+        // Enum value count
+        SyntaxKind[SyntaxKind["Count"] = 292] = "Count";
+        // Markers
+        SyntaxKind[SyntaxKind["FirstAssignment"] = 58] = "FirstAssignment";
+        SyntaxKind[SyntaxKind["LastAssignment"] = 70] = "LastAssignment";
+        SyntaxKind[SyntaxKind["FirstCompoundAssignment"] = 59] = 
"FirstCompoundAssignment";
+        SyntaxKind[SyntaxKind["LastCompoundAssignment"] = 70] = 
"LastCompoundAssignment";
+        SyntaxKind[SyntaxKind["FirstReservedWord"] = 72] = "FirstReservedWord";
+        SyntaxKind[SyntaxKind["LastReservedWord"] = 107] = "LastReservedWord";
+        SyntaxKind[SyntaxKind["FirstKeyword"] = 72] = "FirstKeyword";
+        SyntaxKind[SyntaxKind["LastKeyword"] = 142] = "LastKeyword";
+        SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 108] = 
"FirstFutureReservedWord";
+        SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 116] = 
"LastFutureReservedWord";
+        SyntaxKind[SyntaxKind["FirstTypeNode"] = 158] = "FirstTypeNode";
+        SyntaxKind[SyntaxKind["LastTypeNode"] = 173] = "LastTypeNode";
+        SyntaxKind[SyntaxKind["FirstPunctuation"] = 17] = "FirstPunctuation";
+        SyntaxKind[SyntaxKind["LastPunctuation"] = 70] = "LastPunctuation";
+        SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken";
+        SyntaxKind[SyntaxKind["LastToken"] = 142] = "LastToken";
+        SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken";
+        SyntaxKind[SyntaxKind["LastTriviaToken"] = 7] = "LastTriviaToken";
+        SyntaxKind[SyntaxKind["FirstLiteralToken"] = 8] = "FirstLiteralToken";
+        SyntaxKind[SyntaxKind["LastLiteralToken"] = 13] = "LastLiteralToken";
+        SyntaxKind[SyntaxKind["FirstTemplateToken"] = 13] = 
"FirstTemplateToken";
+        SyntaxKind[SyntaxKind["LastTemplateToken"] = 16] = "LastTemplateToken";
+        SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 27] = 
"FirstBinaryOperator";
+        SyntaxKind[SyntaxKind["LastBinaryOperator"] = 70] = 
"LastBinaryOperator";
+        SyntaxKind[SyntaxKind["FirstNode"] = 143] = "FirstNode";
+        SyntaxKind[SyntaxKind["FirstJSDocNode"] = 267] = "FirstJSDocNode";
+        SyntaxKind[SyntaxKind["LastJSDocNode"] = 285] = "LastJSDocNode";
+        SyntaxKind[SyntaxKind["FirstJSDocTagNode"] = 276] = 
"FirstJSDocTagNode";
+        SyntaxKind[SyntaxKind["LastJSDocTagNode"] = 285] = "LastJSDocTagNode";
+    })(SyntaxKind = ts.SyntaxKind || (ts.SyntaxKind = {}));
+    var NodeFlags;
+    (function (NodeFlags) {
+        NodeFlags[NodeFlags["None"] = 0] = "None";
+        NodeFlags[NodeFlags["Let"] = 1] = "Let";
+        NodeFlags[NodeFlags["Const"] = 2] = "Const";
+        NodeFlags[NodeFlags["NestedNamespace"] = 4] = "NestedNamespace";
+        NodeFlags[NodeFlags["Synthesized"] = 8] = "Synthesized";
+        NodeFlags[NodeFlags["Namespace"] = 16] = "Namespace";
+        NodeFlags[NodeFlags["ExportContext"] = 32] = "ExportContext";
+        NodeFlags[NodeFlags["ContainsThis"] = 64] = "ContainsThis";
+        NodeFlags[NodeFlags["HasImplicitReturn"] = 128] = "HasImplicitReturn";
+        NodeFlags[NodeFlags["HasExplicitReturn"] = 256] = "HasExplicitReturn";
+        NodeFlags[NodeFlags["GlobalAugmentation"] = 512] = 
"GlobalAugmentation";
+        NodeFlags[NodeFlags["HasAsyncFunctions"] = 1024] = "HasAsyncFunctions";
+        NodeFlags[NodeFlags["DisallowInContext"] = 2048] = "DisallowInContext";
+        NodeFlags[NodeFlags["YieldContext"] = 4096] = "YieldContext";
+        NodeFlags[NodeFlags["DecoratorContext"] = 8192] = "DecoratorContext";
+        NodeFlags[NodeFlags["AwaitContext"] = 16384] = "AwaitContext";
+        NodeFlags[NodeFlags["ThisNodeHasError"] = 32768] = "ThisNodeHasError";
+        NodeFlags[NodeFlags["JavaScriptFile"] = 65536] = "JavaScriptFile";
+        NodeFlags[NodeFlags["ThisNodeOrAnySubNodesHasError"] = 131072] = 
"ThisNodeOrAnySubNodesHasError";
+        NodeFlags[NodeFlags["HasAggregatedChildData"] = 262144] = 
"HasAggregatedChildData";
+        // This flag will be set when the parser encounters a dynamic import 
expression so that module resolution
+        // will not have to walk the tree if the flag is not set. However, 
this flag is just a approximation because
+        // once it is set, the flag never gets cleared (hence why it's named 
"PossiblyContainsDynamicImport").
+        // During editing, if dynamic import is removed, incremental parsing 
will *NOT* update this flag. This means that the tree will always be traversed
+        // during module resolution. However, the removal operation should not 
occur often and in the case of the
+        // removal, it is likely that users will add the import anyway.
+        // The advantage of this approach is its simplicity. For the case of 
batch compilation,
+        // we guarantee that users won't have to pay the price of walking the 
tree if a dynamic import isn't used.
+        /* @internal */
+        NodeFlags[NodeFlags["PossiblyContainsDynamicImport"] = 524288] = 
"PossiblyContainsDynamicImport";
+        NodeFlags[NodeFlags["JSDoc"] = 1048576] = "JSDoc";
+        NodeFlags[NodeFlags["BlockScoped"] = 3] = "BlockScoped";
+        NodeFlags[NodeFlags["ReachabilityCheckFlags"] = 384] = 
"ReachabilityCheckFlags";
+        NodeFlags[NodeFlags["ReachabilityAndEmitFlags"] = 1408] = 
"ReachabilityAndEmitFlags";
+        // Parsing context flags
+        NodeFlags[NodeFlags["ContextFlags"] = 96256] = "ContextFlags";
+        // Exclude these flags when parsing a Type
+        NodeFlags[NodeFlags["TypeExcludesFlags"] = 20480] = 
"TypeExcludesFlags";
+    })(NodeFlags = ts.NodeFlags || (ts.NodeFlags = {}));
+    var ModifierFlags;
+    (function (ModifierFlags) {
+        ModifierFlags[ModifierFlags["None"] = 0] = "None";
+        ModifierFlags[ModifierFlags["Export"] = 1] = "Export";
+        ModifierFlags[ModifierFlags["Ambient"] = 2] = "Ambient";
+        ModifierFlags[ModifierFlags["Public"] = 4] = "Public";
+        ModifierFlags[ModifierFlags["Private"] = 8] = "Private";
+        ModifierFlags[ModifierFlags["Protected"] = 16] = "Protected";
+        ModifierFlags[ModifierFlags["Static"] = 32] = "Static";
+        ModifierFlags[ModifierFlags["Readonly"] = 64] = "Readonly";
+        ModifierFlags[ModifierFlags["Abstract"] = 128] = "Abstract";
+        ModifierFlags[ModifierFlags["Async"] = 256] = "Async";
+        ModifierFlags[ModifierFlags["Default"] = 512] = "Default";
+        ModifierFlags[ModifierFlags["Const"] = 2048] = "Const";
+        ModifierFlags[ModifierFlags["HasComputedFlags"] = 536870912] = 
"HasComputedFlags";
+        ModifierFlags[ModifierFlags["AccessibilityModifier"] = 28] = 
"AccessibilityModifier";
+        // Accessibility modifiers and 'readonly' can be attached to a 
parameter in a constructor to make it a property.
+        ModifierFlags[ModifierFlags["ParameterPropertyModifier"] = 92] = 
"ParameterPropertyModifier";
+        ModifierFlags[ModifierFlags["NonPublicAccessibilityModifier"] = 24] = 
"NonPublicAccessibilityModifier";
+        ModifierFlags[ModifierFlags["TypeScriptModifier"] = 2270] = 
"TypeScriptModifier";
+        ModifierFlags[ModifierFlags["ExportDefault"] = 513] = "ExportDefault";
+    })(ModifierFlags = ts.ModifierFlags || (ts.ModifierFlags = {}));
+    var JsxFlags;
+    (function (JsxFlags) {
+        JsxFlags[JsxFlags["None"] = 0] = "None";
+        /** An element from a named property of the JSX.IntrinsicElements 
interface */
+        JsxFlags[JsxFlags["IntrinsicNamedElement"] = 1] = 
"IntrinsicNamedElement";
+        /** An element inferred from the string index signature of the 
JSX.IntrinsicElements interface */
+        JsxFlags[JsxFlags["IntrinsicIndexedElement"] = 2] = 
"IntrinsicIndexedElement";
+        JsxFlags[JsxFlags["IntrinsicElement"] = 3] = "IntrinsicElement";
+    })(JsxFlags = ts.JsxFlags || (ts.JsxFlags = {}));
+    /* @internal */
+    var RelationComparisonResult;
+    (function (RelationComparisonResult) {
+        RelationComparisonResult[RelationComparisonResult["Succeeded"] = 1] = 
"Succeeded";
+        RelationComparisonResult[RelationComparisonResult["Failed"] = 2] = 
"Failed";
+        RelationComparisonResult[RelationComparisonResult["FailedAndReported"] 
= 3] = "FailedAndReported";
+    })(RelationComparisonResult = ts.RelationComparisonResult || 
(ts.RelationComparisonResult = {}));
+    /*@internal*/
+    var GeneratedIdentifierKind;
+    (function (GeneratedIdentifierKind) {
+        GeneratedIdentifierKind[GeneratedIdentifierKind["None"] = 0] = "None";
+        GeneratedIdentifierKind[GeneratedIdentifierKind["Auto"] = 1] = "Auto";
+        GeneratedIdentifierKind[GeneratedIdentifierKind["Loop"] = 2] = "Loop";
+        GeneratedIdentifierKind[GeneratedIdentifierKind["Unique"] = 3] = 
"Unique";
+        GeneratedIdentifierKind[GeneratedIdentifierKind["Node"] = 4] = "Node";
+    })(GeneratedIdentifierKind = ts.GeneratedIdentifierKind || 
(ts.GeneratedIdentifierKind = {}));
+    /* @internal */
+    var NumericLiteralFlags;
+    (function (NumericLiteralFlags) {
+        NumericLiteralFlags[NumericLiteralFlags["None"] = 0] = "None";
+        NumericLiteralFlags[NumericLiteralFlags["Scientific"] = 2] = 
"Scientific";
+        NumericLiteralFlags[NumericLiteralFlags["Octal"] = 4] = "Octal";
+        NumericLiteralFlags[NumericLiteralFlags["HexSpecifier"] = 8] = 
"HexSpecifier";
+        NumericLiteralFlags[NumericLiteralFlags["BinarySpecifier"] = 16] = 
"BinarySpecifier";
+        NumericLiteralFlags[NumericLiteralFlags["OctalSpecifier"] = 32] = 
"OctalSpecifier";
+        NumericLiteralFlags[NumericLiteralFlags["BinaryOrOctalSpecifier"] = 
48] = "BinaryOrOctalSpecifier";
+    })(NumericLiteralFlags = ts.NumericLiteralFlags || (ts.NumericLiteralFlags 
= {}));
+    var FlowFlags;
+    (function (FlowFlags) {
+        FlowFlags[FlowFlags["Unreachable"] = 1] = "Unreachable";
+        FlowFlags[FlowFlags["Start"] = 2] = "Start";
+        FlowFlags[FlowFlags["BranchLabel"] = 4] = "BranchLabel";
+        FlowFlags[FlowFlags["LoopLabel"] = 8] = "LoopLabel";
+        FlowFlags[FlowFlags["Assignment"] = 16] = "Assignment";
+        FlowFlags[FlowFlags["TrueCondition"] = 32] = "TrueCondition";
+        FlowFlags[FlowFlags["FalseCondition"] = 64] = "FalseCondition";
+        FlowFlags[FlowFlags["SwitchClause"] = 128] = "SwitchClause";
+        FlowFlags[FlowFlags["ArrayMutation"] = 256] = "ArrayMutation";
+        FlowFlags[FlowFlags["Referenced"] = 512] = "Referenced";
+        FlowFlags[FlowFlags["Shared"] = 1024] = "Shared";
+        FlowFlags[FlowFlags["PreFinally"] = 2048] = "PreFinally";
+        FlowFlags[FlowFlags["AfterFinally"] = 4096] = "AfterFinally";
+        FlowFlags[FlowFlags["Label"] = 12] = "Label";
+        FlowFlags[FlowFlags["Condition"] = 96] = "Condition";
+    })(FlowFlags = ts.FlowFlags || (ts.FlowFlags = {}));
+    var OperationCanceledException = /** @class */ (function () {
+        function OperationCanceledException() {
+        }
+        return OperationCanceledException;
+    }());
+    ts.OperationCanceledException = OperationCanceledException;
+    /* @internal */
+    var StructureIsReused;
+    (function (StructureIsReused) {
+        StructureIsReused[StructureIsReused["Not"] = 0] = "Not";
+        StructureIsReused[StructureIsReused["SafeModules"] = 1] = 
"SafeModules";
+        StructureIsReused[StructureIsReused["Completely"] = 2] = "Completely";
+    })(StructureIsReused = ts.StructureIsReused || (ts.StructureIsReused = 
{}));
+    /** Return code used by getEmitOutput function to indicate status of the 
function */
+    var ExitStatus;
+    (function (ExitStatus) {
+        // Compiler ran successfully.  Either this was a simple do-nothing 
compilation (for example,
+        // when -version or -help was provided, or this was a normal 
compilation, no diagnostics
+        // were produced, and all outputs were generated successfully.
+        ExitStatus[ExitStatus["Success"] = 0] = "Success";
+        // Diagnostics were produced and because of them no code was generated.
+        ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = 
"DiagnosticsPresent_OutputsSkipped";
+        // Diagnostics were produced and outputs were generated in spite of 
them.
+        ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = 
"DiagnosticsPresent_OutputsGenerated";
+    })(ExitStatus = ts.ExitStatus || (ts.ExitStatus = {}));
+    var NodeBuilderFlags;
+    (function (NodeBuilderFlags) {
+        NodeBuilderFlags[NodeBuilderFlags["None"] = 0] = "None";
+        // Options
+        NodeBuilderFlags[NodeBuilderFlags["NoTruncation"] = 1] = 
"NoTruncation";
+        NodeBuilderFlags[NodeBuilderFlags["WriteArrayAsGenericType"] = 2] = 
"WriteArrayAsGenericType";
+        NodeBuilderFlags[NodeBuilderFlags["WriteTypeArgumentsOfSignature"] = 
32] = "WriteTypeArgumentsOfSignature";
+        NodeBuilderFlags[NodeBuilderFlags["UseFullyQualifiedType"] = 64] = 
"UseFullyQualifiedType";
+        NodeBuilderFlags[NodeBuilderFlags["SuppressAnyReturnType"] = 256] = 
"SuppressAnyReturnType";
+        
NodeBuilderFlags[NodeBuilderFlags["WriteTypeParametersInQualifiedName"] = 512] 
= "WriteTypeParametersInQualifiedName";
+        // Error handling
+        NodeBuilderFlags[NodeBuilderFlags["AllowThisInObjectLiteral"] = 1024] 
= "AllowThisInObjectLiteral";
+        
NodeBuilderFlags[NodeBuilderFlags["AllowQualifedNameInPlaceOfIdentifier"] = 
2048] = "AllowQualifedNameInPlaceOfIdentifier";
+        NodeBuilderFlags[NodeBuilderFlags["AllowAnonymousIdentifier"] = 8192] 
= "AllowAnonymousIdentifier";
+        NodeBuilderFlags[NodeBuilderFlags["AllowEmptyUnionOrIntersection"] = 
16384] = "AllowEmptyUnionOrIntersection";
+        NodeBuilderFlags[NodeBuilderFlags["AllowEmptyTuple"] = 32768] = 
"AllowEmptyTuple";
+        NodeBuilderFlags[NodeBuilderFlags["IgnoreErrors"] = 60416] = 
"IgnoreErrors";
+        // State
+        NodeBuilderFlags[NodeBuilderFlags["InObjectTypeLiteral"] = 1048576] = 
"InObjectTypeLiteral";
+        NodeBuilderFlags[NodeBuilderFlags["InTypeAlias"] = 8388608] = 
"InTypeAlias";
+    })(NodeBuilderFlags = ts.NodeBuilderFlags || (ts.NodeBuilderFlags = {}));
+    var TypeFormatFlags;
+    (function (TypeFormatFlags) {
+        TypeFormatFlags[TypeFormatFlags["None"] = 0] = "None";
+        TypeFormatFlags[TypeFormatFlags["WriteArrayAsGenericType"] = 1] = 
"WriteArrayAsGenericType";
+        TypeFormatFlags[TypeFormatFlags["UseTypeOfFunction"] = 4] = 
"UseTypeOfFunction";
+        TypeFormatFlags[TypeFormatFlags["NoTruncation"] = 8] = "NoTruncation";
+        TypeFormatFlags[TypeFormatFlags["WriteArrowStyleSignature"] = 16] = 
"WriteArrowStyleSignature";
+        TypeFormatFlags[TypeFormatFlags["WriteOwnNameForAnyLike"] = 32] = 
"WriteOwnNameForAnyLike";
+        TypeFormatFlags[TypeFormatFlags["WriteTypeArgumentsOfSignature"] = 64] 
= "WriteTypeArgumentsOfSignature";
+        TypeFormatFlags[TypeFormatFlags["InElementType"] = 128] = 
"InElementType";
+        TypeFormatFlags[TypeFormatFlags["UseFullyQualifiedType"] = 256] = 
"UseFullyQualifiedType";
+        TypeFormatFlags[TypeFormatFlags["InFirstTypeArgument"] = 512] = 
"InFirstTypeArgument";
+        TypeFormatFlags[TypeFormatFlags["InTypeAlias"] = 1024] = "InTypeAlias";
+        TypeFormatFlags[TypeFormatFlags["SuppressAnyReturnType"] = 4096] = 
"SuppressAnyReturnType";
+        TypeFormatFlags[TypeFormatFlags["AddUndefined"] = 8192] = 
"AddUndefined";
+        TypeFormatFlags[TypeFormatFlags["WriteClassExpressionAsTypeLiteral"] = 
16384] = "WriteClassExpressionAsTypeLiteral";
+        TypeFormatFlags[TypeFormatFlags["InArrayType"] = 32768] = 
"InArrayType";
+        TypeFormatFlags[TypeFormatFlags["UseAliasDefinedOutsideCurrentScope"] 
= 65536] = "UseAliasDefinedOutsideCurrentScope";
+        // even though `T` can't be accessed in the current scope.
+    })(TypeFormatFlags = ts.TypeFormatFlags || (ts.TypeFormatFlags = {}));
+    var SymbolFormatFlags;
+    (function (SymbolFormatFlags) {
+        SymbolFormatFlags[SymbolFormatFlags["None"] = 0] = "None";
+        // Write symbols's type argument if it is instantiated symbol
+        // eg. class C<T> { p: T }   <-- Show p as C<T>.p here
+        //     var a: C<number>;
+        //     var p = a.p;  <--- Here p is property of C<number> so show it 
as C<number>.p instead of just C.p
+        SymbolFormatFlags[SymbolFormatFlags["WriteTypeParametersOrArguments"] 
= 1] = "WriteTypeParametersOrArguments";
+        // Use only external alias information to get the symbol name in the 
given context
+        // eg.  module m { export class c { } } import x = m.c;
+        // When this flag is specified m.c will be used to refer to the class 
instead of alias symbol x
+        SymbolFormatFlags[SymbolFormatFlags["UseOnlyExternalAliasing"] = 2] = 
"UseOnlyExternalAliasing";
+    })(SymbolFormatFlags = ts.SymbolFormatFlags || (ts.SymbolFormatFlags = 
{}));
+    /* @internal */
+    var SymbolAccessibility;
+    (function (SymbolAccessibility) {
+        SymbolAccessibility[SymbolAccessibility["Accessible"] = 0] = 
"Accessible";
+        SymbolAccessibility[SymbolAccessibility["NotAccessible"] = 1] = 
"NotAccessible";
+        SymbolAccessibility[SymbolAccessibility["CannotBeNamed"] = 2] = 
"CannotBeNamed";
+    })(SymbolAccessibility = ts.SymbolAccessibility || (ts.SymbolAccessibility 
= {}));
+    /* @internal */
+    var SyntheticSymbolKind;
+    (function (SyntheticSymbolKind) {
+        SyntheticSymbolKind[SyntheticSymbolKind["UnionOrIntersection"] = 0] = 
"UnionOrIntersection";
+        SyntheticSymbolKind[SyntheticSymbolKind["Spread"] = 1] = "Spread";
+    })(SyntheticSymbolKind = ts.SyntheticSymbolKind || (ts.SyntheticSymbolKind 
= {}));
+    var TypePredicateKind;
+    (function (TypePredicateKind) {
+        TypePredicateKind[TypePredicateKind["This"] = 0] = "This";
+        TypePredicateKind[TypePredicateKind["Identifier"] = 1] = "Identifier";
+    })(TypePredicateKind = ts.TypePredicateKind || (ts.TypePredicateKind = 
{}));
+    /** Indicates how to serialize the name for a TypeReferenceNode when 
emitting decorator metadata */
+    /* @internal */
+    var TypeReferenceSerializationKind;
+    (function (TypeReferenceSerializationKind) {
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["Unknown"] = 0] = 
"Unknown";
+        // should be emitted using a safe fallback.
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["TypeWithConstructSignatureAndValue"]
 = 1] = "TypeWithConstructSignatureAndValue";
+        // function that can be reached at runtime (e.g. a `class`
+        // declaration or a `var` declaration for the static side
+        // of a type, such as the global `Promise` type in lib.d.ts).
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["VoidNullableOrNeverType"]
 = 2] = "VoidNullableOrNeverType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["NumberLikeType"] 
= 3] = "NumberLikeType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["StringLikeType"] 
= 4] = "StringLikeType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["BooleanType"] = 
5] = "BooleanType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ArrayLikeType"] 
= 6] = "ArrayLikeType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ESSymbolType"] = 
7] = "ESSymbolType";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["Promise"] = 8] = 
"Promise";
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["TypeWithCallSignature"]
 = 9] = "TypeWithCallSignature";
+        // with call signatures.
+        
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ObjectType"] = 
10] = "ObjectType";
+    })(TypeReferenceSerializationKind = ts.TypeReferenceSerializationKind || 
(ts.TypeReferenceSerializationKind = {}));
+    var SymbolFlags;
+    (function (SymbolFlags) {
+        SymbolFlags[SymbolFlags["None"] = 0] = "None";
+        SymbolFlags[SymbolFlags["FunctionScopedVariable"] = 1] = 
"FunctionScopedVariable";
+        SymbolFlags[SymbolFlags["BlockScopedVariable"] = 2] = 
"BlockScopedVariable";
+        SymbolFlags[SymbolFlags["Property"] = 4] = "Property";
+        SymbolFlags[SymbolFlags["EnumMember"] = 8] = "EnumMember";
+        SymbolFlags[SymbolFlags["Function"] = 16] = "Function";
+        SymbolFlags[SymbolFlags["Class"] = 32] = "Class";
+        SymbolFlags[SymbolFlags["Interface"] = 64] = "Interface";
+        SymbolFlags[SymbolFlags["ConstEnum"] = 128] = "ConstEnum";
+        SymbolFlags[SymbolFlags["RegularEnum"] = 256] = "RegularEnum";
+        SymbolFlags[SymbolFlags["ValueModule"] = 512] = "ValueModule";
+        SymbolFlags[SymbolFlags["NamespaceModule"] = 1024] = "NamespaceModule";
+        SymbolFlags[SymbolFlags["TypeLiteral"] = 2048] = "TypeLiteral";
+        SymbolFlags[SymbolFlags["ObjectLiteral"] = 4096] = "ObjectLiteral";
+        SymbolFlags[SymbolFlags["Method"] = 8192] = "Method";
+        SymbolFlags[SymbolFlags["Constructor"] = 16384] = "Constructor";
+        SymbolFlags[SymbolFlags["GetAccessor"] = 32768] = "GetAccessor";
+        SymbolFlags[SymbolFlags["SetAccessor"] = 65536] = "SetAccessor";
+        SymbolFlags[SymbolFlags["Signature"] = 131072] = "Signature";
+        SymbolFlags[SymbolFlags["TypeParameter"] = 262144] = "TypeParameter";
+        SymbolFlags[SymbolFlags["TypeAlias"] = 524288] = "TypeAlias";
+        SymbolFlags[SymbolFlags["ExportValue"] = 1048576] = "ExportValue";
+        SymbolFlags[SymbolFlags["Alias"] = 2097152] = "Alias";
+        SymbolFlags[SymbolFlags["Prototype"] = 4194304] = "Prototype";
+        SymbolFlags[SymbolFlags["ExportStar"] = 8388608] = "ExportStar";
+        SymbolFlags[SymbolFlags["Optional"] = 16777216] = "Optional";
+        SymbolFlags[SymbolFlags["Transient"] = 33554432] = "Transient";
+        SymbolFlags[SymbolFlags["Enum"] = 384] = "Enum";
+        SymbolFlags[SymbolFlags["Variable"] = 3] = "Variable";
+        SymbolFlags[SymbolFlags["Value"] = 107455] = "Value";
+        SymbolFlags[SymbolFlags["Type"] = 793064] = "Type";
+        SymbolFlags[SymbolFlags["Namespace"] = 1920] = "Namespace";
+        SymbolFlags[SymbolFlags["Module"] = 1536] = "Module";
+        SymbolFlags[SymbolFlags["Accessor"] = 98304] = "Accessor";
+        // Variables can be redeclared, but can not redeclare a block-scoped 
declaration with the
+        // same name, or any other value that is not a variable, e.g. 
ValueModule or Class
+        SymbolFlags[SymbolFlags["FunctionScopedVariableExcludes"] = 107454] = 
"FunctionScopedVariableExcludes";
+        // Block-scoped declarations are not allowed to be re-declared
+        // they can not merge with anything in the value space
+        SymbolFlags[SymbolFlags["BlockScopedVariableExcludes"] = 107455] = 
"BlockScopedVariableExcludes";
+        SymbolFlags[SymbolFlags["ParameterExcludes"] = 107455] = 
"ParameterExcludes";
+        SymbolFlags[SymbolFlags["PropertyExcludes"] = 0] = "PropertyExcludes";
+        SymbolFlags[SymbolFlags["EnumMemberExcludes"] = 900095] = 
"EnumMemberExcludes";
+        SymbolFlags[SymbolFlags["FunctionExcludes"] = 106927] = 
"FunctionExcludes";
+        SymbolFlags[SymbolFlags["ClassExcludes"] = 899519] = "ClassExcludes";
+        SymbolFlags[SymbolFlags["InterfaceExcludes"] = 792968] = 
"InterfaceExcludes";
+        SymbolFlags[SymbolFlags["RegularEnumExcludes"] = 899327] = 
"RegularEnumExcludes";
+        SymbolFlags[SymbolFlags["ConstEnumExcludes"] = 899967] = 
"ConstEnumExcludes";
+        SymbolFlags[SymbolFlags["ValueModuleExcludes"] = 106639] = 
"ValueModuleExcludes";
+        SymbolFlags[SymbolFlags["NamespaceModuleExcludes"] = 0] = 
"NamespaceModuleExcludes";
+        SymbolFlags[SymbolFlags["MethodExcludes"] = 99263] = "MethodExcludes";
+        SymbolFlags[SymbolFlags["GetAccessorExcludes"] = 41919] = 
"GetAccessorExcludes";
+        SymbolFlags[SymbolFlags["SetAccessorExcludes"] = 74687] = 
"SetAccessorExcludes";
+        SymbolFlags[SymbolFlags["TypeParameterExcludes"] = 530920] = 
"TypeParameterExcludes";
+        SymbolFlags[SymbolFlags["TypeAliasExcludes"] = 793064] = 
"TypeAliasExcludes";
+        SymbolFlags[SymbolFlags["AliasExcludes"] = 2097152] = "AliasExcludes";
+        SymbolFlags[SymbolFlags["ModuleMember"] = 2623475] = "ModuleMember";
+        SymbolFlags[SymbolFlags["ExportHasLocal"] = 944] = "ExportHasLocal";
+        SymbolFlags[SymbolFlags["HasExports"] = 1952] = "HasExports";
+        SymbolFlags[SymbolFlags["HasMembers"] = 6240] = "HasMembers";
+        SymbolFlags[SymbolFlags["BlockScoped"] = 418] = "BlockScoped";
+        SymbolFlags[SymbolFlags["PropertyOrAccessor"] = 98308] = 
"PropertyOrAccessor";
+        SymbolFlags[SymbolFlags["ClassMember"] = 106500] = "ClassMember";
+        /* @internal */
+        // The set of things we consider semantically classifiable.  Used to 
speed up the LS during
+        // classification.
+        SymbolFlags[SymbolFlags["Classifiable"] = 788448] = "Classifiable";
+    })(SymbolFlags = ts.SymbolFlags || (ts.SymbolFlags = {}));
+    /* @internal */
+    var EnumKind;
+    (function (EnumKind) {
+        EnumKind[EnumKind["Numeric"] = 0] = "Numeric";
+        EnumKind[EnumKind["Literal"] = 1] = "Literal"; // Literal enum (each 
member has a TypeFlags.EnumLiteral type)
+    })(EnumKind = ts.EnumKind || (ts.EnumKind = {}));
+    /* @internal */
+    var CheckFlags;
+    (function (CheckFlags) {
+        CheckFlags[CheckFlags["Instantiated"] = 1] = "Instantiated";
+        CheckFlags[CheckFlags["SyntheticProperty"] = 2] = "SyntheticProperty";
+        CheckFlags[CheckFlags["SyntheticMethod"] = 4] = "SyntheticMethod";
+        CheckFlags[CheckFlags["Readonly"] = 8] = "Readonly";
+        CheckFlags[CheckFlags["Partial"] = 16] = "Partial";
+        CheckFlags[CheckFlags["HasNonUniformType"] = 32] = "HasNonUniformType";
+        CheckFlags[CheckFlags["ContainsPublic"] = 64] = "ContainsPublic";
+        CheckFlags[CheckFlags["ContainsProtected"] = 128] = 
"ContainsProtected";
+        CheckFlags[CheckFlags["ContainsPrivate"] = 256] = "ContainsPrivate";
+        CheckFlags[CheckFlags["ContainsStatic"] = 512] = "ContainsStatic";
+        CheckFlags[CheckFlags["Synthetic"] = 6] = "Synthetic";
+    })(CheckFlags = ts.CheckFlags || (ts.CheckFlags = {}));
+    var InternalSymbolName;
+    (function (InternalSymbolName) {
+        InternalSymbolName["Call"] = "__call";
+        InternalSymbolName["Constructor"] = "__constructor";
+        InternalSymbolName["New"] = "__new";
+        InternalSymbolName["Index"] = "__index";
+        InternalSymbolName["ExportStar"] = "__export";
+        InternalSymbolName["Global"] = "__global";
+        InternalSymbolName["Missing"] = "__missing";
+        InternalSymbolName["Type"] = "__type";
+        InternalSymbolName["Object"] = "__object";
+        InternalSymbolName["JSXAttributes"] = "__jsxAttributes";
+        InternalSymbolName["Class"] = "__class";
+        InternalSymbolName["Function"] = "__function";
+        InternalSymbolName["Computed"] = "__computed";
+        InternalSymbolName["Resolving"] = "__resolving__";
+        InternalSymbolName["ExportEquals"] = "export=";
+        InternalSymbolName["Default"] = "default";
+    })(InternalSymbolName = ts.InternalSymbolName || (ts.InternalSymbolName = 
{}));
+    /* @internal */
+    var NodeCheckFlags;
+    (function (NodeCheckFlags) {
+        NodeCheckFlags[NodeCheckFlags["TypeChecked"] = 1] = "TypeChecked";
+        NodeCheckFlags[NodeCheckFlags["LexicalThis"] = 2] = "LexicalThis";
+        NodeCheckFlags[NodeCheckFlags["CaptureThis"] = 4] = "CaptureThis";
+        NodeCheckFlags[NodeCheckFlags["CaptureNewTarget"] = 8] = 
"CaptureNewTarget";
+        NodeCheckFlags[NodeCheckFlags["SuperInstance"] = 256] = 
"SuperInstance";
+        NodeCheckFlags[NodeCheckFlags["SuperStatic"] = 512] = "SuperStatic";
+        NodeCheckFlags[NodeCheckFlags["ContextChecked"] = 1024] = 
"ContextChecked";
+        NodeCheckFlags[NodeCheckFlags["AsyncMethodWithSuper"] = 2048] = 
"AsyncMethodWithSuper";
+        NodeCheckFlags[NodeCheckFlags["AsyncMethodWithSuperBinding"] = 4096] = 
"AsyncMethodWithSuperBinding";
+        NodeCheckFlags[NodeCheckFlags["CaptureArguments"] = 8192] = 
"CaptureArguments";
+        NodeCheckFlags[NodeCheckFlags["EnumValuesComputed"] = 16384] = 
"EnumValuesComputed";
+        NodeCheckFlags[NodeCheckFlags["LexicalModuleMergesWithClass"] = 32768] 
= "LexicalModuleMergesWithClass";
+        NodeCheckFlags[NodeCheckFlags["LoopWithCapturedBlockScopedBinding"] = 
65536] = "LoopWithCapturedBlockScopedBinding";
+        NodeCheckFlags[NodeCheckFlags["CapturedBlockScopedBinding"] = 131072] 
= "CapturedBlockScopedBinding";
+        NodeCheckFlags[NodeCheckFlags["BlockScopedBindingInLoop"] = 262144] = 
"BlockScopedBindingInLoop";
+        NodeCheckFlags[NodeCheckFlags["ClassWithBodyScopedClassBinding"] = 
524288] = "ClassWithBodyScopedClassBinding";
+        NodeCheckFlags[NodeCheckFlags["BodyScopedClassBinding"] = 1048576] = 
"BodyScopedClassBinding";
+        NodeCheckFlags[NodeCheckFlags["NeedsLoopOutParameter"] = 2097152] = 
"NeedsLoopOutParameter";
+        NodeCheckFlags[NodeCheckFlags["AssignmentsMarked"] = 4194304] = 
"AssignmentsMarked";
+        NodeCheckFlags[NodeCheckFlags["ClassWithConstructorReference"] = 
8388608] = "ClassWithConstructorReference";
+        NodeCheckFlags[NodeCheckFlags["ConstructorReferenceInClass"] = 
16777216] = "ConstructorReferenceInClass";
+    })(NodeCheckFlags = ts.NodeCheckFlags || (ts.NodeCheckFlags = {}));
+    var TypeFlags;
+    (function (TypeFlags) {
+        TypeFlags[TypeFlags["Any"] = 1] = "Any";
+        TypeFlags[TypeFlags["String"] = 2] = "String";
+        TypeFlags[TypeFlags["Number"] = 4] = "Number";
+        TypeFlags[TypeFlags["Boolean"] = 8] = "Boolean";
+        TypeFlags[TypeFlags["Enum"] = 16] = "Enum";
+        TypeFlags[TypeFlags["StringLiteral"] = 32] = "StringLiteral";
+        TypeFlags[TypeFlags["NumberLiteral"] = 64] = "NumberLiteral";
+        TypeFlags[TypeFlags["BooleanLiteral"] = 128] = "BooleanLiteral";
+        TypeFlags[TypeFlags["EnumLiteral"] = 256] = "EnumLiteral";
+        TypeFlags[TypeFlags["ESSymbol"] = 512] = "ESSymbol";
+        TypeFlags[TypeFlags["Void"] = 1024] = "Void";
+        TypeFlags[TypeFlags["Undefined"] = 2048] = "Undefined";
+        TypeFlags[TypeFlags["Null"] = 4096] = "Null";
+        TypeFlags[TypeFlags["Never"] = 8192] = "Never";
+        TypeFlags[TypeFlags["TypeParameter"] = 16384] = "TypeParameter";
+        TypeFlags[TypeFlags["Object"] = 32768] = "Object";
+        TypeFlags[TypeFlags["Union"] = 65536] = "Union";
+        TypeFlags[TypeFlags["Intersection"] = 131072] = "Intersection";
+        TypeFlags[TypeFlags["Index"] = 262144] = "Index";
+        TypeFlags[TypeFlags["IndexedAccess"] = 524288] = "IndexedAccess";
+        /* @internal */
+        TypeFlags[TypeFlags["FreshLiteral"] = 1048576] = "FreshLiteral";
+        /* @internal */
+        TypeFlags[TypeFlags["ContainsWideningType"] = 2097152] = 
"ContainsWideningType";
+        /* @internal */
+        TypeFlags[TypeFlags["ContainsObjectLiteral"] = 4194304] = 
"ContainsObjectLiteral";
+        /* @internal */
+        TypeFlags[TypeFlags["ContainsAnyFunctionType"] = 8388608] = 
"ContainsAnyFunctionType";
+        TypeFlags[TypeFlags["NonPrimitive"] = 16777216] = "NonPrimitive";
+        /* @internal */
+        TypeFlags[TypeFlags["JsxAttributes"] = 33554432] = "JsxAttributes";
+        TypeFlags[TypeFlags["MarkerType"] = 67108864] = "MarkerType";
+        /* @internal */
+        TypeFlags[TypeFlags["Nullable"] = 6144] = "Nullable";
+        TypeFlags[TypeFlags["Literal"] = 224] = "Literal";
+        TypeFlags[TypeFlags["Unit"] = 6368] = "Unit";
+        TypeFlags[TypeFlags["StringOrNumberLiteral"] = 96] = 
"StringOrNumberLiteral";
+        /* @internal */
+        TypeFlags[TypeFlags["DefinitelyFalsy"] = 7392] = "DefinitelyFalsy";
+        TypeFlags[TypeFlags["PossiblyFalsy"] = 7406] = "PossiblyFalsy";
+        /* @internal */
+        TypeFlags[TypeFlags["Intrinsic"] = 16793231] = "Intrinsic";
+        /* @internal */
+        TypeFlags[TypeFlags["Primitive"] = 8190] = "Primitive";
+        TypeFlags[TypeFlags["StringLike"] = 262178] = "StringLike";
+        TypeFlags[TypeFlags["NumberLike"] = 84] = "NumberLike";
+        TypeFlags[TypeFlags["BooleanLike"] = 136] = "BooleanLike";
+        TypeFlags[TypeFlags["EnumLike"] = 272] = "EnumLike";
+        TypeFlags[TypeFlags["UnionOrIntersection"] = 196608] = 
"UnionOrIntersection";
+        TypeFlags[TypeFlags["StructuredType"] = 229376] = "StructuredType";
+        TypeFlags[TypeFlags["StructuredOrTypeVariable"] = 1032192] = 
"StructuredOrTypeVariable";
+        TypeFlags[TypeFlags["TypeVariable"] = 540672] = "TypeVariable";
+        // 'Narrowable' types are types where narrowing actually narrows.
+        // This *should* be every type other than null, undefined, void, and 
never
+        TypeFlags[TypeFlags["Narrowable"] = 17810175] = "Narrowable";
+        TypeFlags[TypeFlags["NotUnionOrUnit"] = 16810497] = "NotUnionOrUnit";
+        /* @internal */
+        TypeFlags[TypeFlags["RequiresWidening"] = 6291456] = 
"RequiresWidening";
+        /* @internal */
+        TypeFlags[TypeFlags["PropagatingFlags"] = 14680064] = 
"PropagatingFlags";
+    })(TypeFlags = ts.TypeFlags || (ts.TypeFlags = {}));
+    var ObjectFlags;
+    (function (ObjectFlags) {
+        ObjectFlags[ObjectFlags["Class"] = 1] = "Class";
+        ObjectFlags[ObjectFlags["Interface"] = 2] = "Interface";
+        ObjectFlags[ObjectFlags["Reference"] = 4] = "Reference";
+        ObjectFlags[ObjectFlags["Tuple"] = 8] = "Tuple";
+        ObjectFlags[ObjectFlags["Anonymous"] = 16] = "Anonymous";
+        ObjectFlags[ObjectFlags["Mapped"] = 32] = "Mapped";
+        ObjectFlags[ObjectFlags["Instantiated"] = 64] = "Instantiated";
+        ObjectFlags[ObjectFlags["ObjectLiteral"] = 128] = "ObjectLiteral";
+        ObjectFlags[ObjectFlags["EvolvingArray"] = 256] = "EvolvingArray";
+        ObjectFlags[ObjectFlags["ObjectLiteralPatternWithComputedProperties"] 
= 512] = "ObjectLiteralPatternWithComputedProperties";
+        ObjectFlags[ObjectFlags["ClassOrInterface"] = 3] = "ClassOrInterface";
+    })(ObjectFlags = ts.ObjectFlags || (ts.ObjectFlags = {}));
+    /* @internal */
+    var Variance;
+    (function (Variance) {
+        Variance[Variance["Invariant"] = 0] = "Invariant";
+        Variance[Variance["Covariant"] = 1] = "Covariant";
+        Variance[Variance["Contravariant"] = 2] = "Contravariant";
+        Variance[Variance["Bivariant"] = 3] = "Bivariant";
+        Variance[Variance["Independent"] = 4] = "Independent";
+    })(Variance = ts.Variance || (ts.Variance = {}));
+    var SignatureKind;
+    (function (SignatureKind) {
+        SignatureKind[SignatureKind["Call"] = 0] = "Call";
+        SignatureKind[SignatureKind["Construct"] = 1] = "Construct";
+    })(SignatureKind = ts.SignatureKind || (ts.SignatureKind = {}));
+    var IndexKind;
+    (function (IndexKind) {
+        IndexKind[IndexKind["String"] = 0] = "String";
+        IndexKind[IndexKind["Number"] = 1] = "Number";
+    })(IndexKind = ts.IndexKind || (ts.IndexKind = {}));
+    var InferencePriority;
+    (function (InferencePriority) {
+        InferencePriority[InferencePriority["Contravariant"] = 1] = 
"Contravariant";
+        InferencePriority[InferencePriority["NakedTypeVariable"] = 2] = 
"NakedTypeVariable";
+        InferencePriority[InferencePriority["MappedType"] = 4] = "MappedType";
+        InferencePriority[InferencePriority["ReturnType"] = 8] = "ReturnType";
+    })(InferencePriority = ts.InferencePriority || (ts.InferencePriority = 
{}));
+    var InferenceFlags;
+    (function (InferenceFlags) {
+        InferenceFlags[InferenceFlags["InferUnionTypes"] = 1] = 
"InferUnionTypes";
+        InferenceFlags[InferenceFlags["NoDefault"] = 2] = "NoDefault";
+        InferenceFlags[InferenceFlags["AnyDefault"] = 4] = "AnyDefault";
+    })(InferenceFlags = ts.InferenceFlags || (ts.InferenceFlags = {}));
+    /**
+     * Ternary values are defined such that
+     * x & y is False if either x or y is False.
+     * x & y is Maybe if either x or y is Maybe, but neither x or y is False.
+     * x & y is True if both x and y are True.
+     * x | y is False if both x and y are False.
+     * x | y is Maybe if either x or y is Maybe, but neither x or y is True.
+     * x | y is True if either x or y is True.
+     */
+    var Ternary;
+    (function (Ternary) {
+        Ternary[Ternary["False"] = 0] = "False";
+        Ternary[Ternary["Maybe"] = 1] = "Maybe";
+        Ternary[Ternary["True"] = -1] = "True";
+    })(Ternary = ts.Ternary || (ts.Ternary = {}));
+    /* @internal */
+    var SpecialPropertyAssignmentKind;
+    (function (SpecialPropertyAssignmentKind) {
+        SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["None"] = 
0] = "None";
+        /// exports.name = expr
+        
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["ExportsProperty"] 
= 1] = "ExportsProperty";
+        /// module.exports = expr
+        
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["ModuleExports"] = 
2] = "ModuleExports";
+        /// className.prototype.name = expr
+        
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["PrototypeProperty"]
 = 3] = "PrototypeProperty";
+        /// this.name = expr
+        
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["ThisProperty"] = 
4] = "ThisProperty";
+        // F.name = expr
+        
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["Property"] = 5] = 
"Property";
+    })(SpecialPropertyAssignmentKind = ts.SpecialPropertyAssignmentKind || 
(ts.SpecialPropertyAssignmentKind = {}));
+    var DiagnosticCategory;
+    (function (DiagnosticCategory) {
+        DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning";
+        DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error";
+        DiagnosticCategory[DiagnosticCategory["Message"] = 2] = "Message";
+    })(DiagnosticCategory = ts.DiagnosticCategory || (ts.DiagnosticCategory = 
{}));
+    var ModuleResolutionKind;
+    (function (ModuleResolutionKind) {
+        ModuleResolutionKind[ModuleResolutionKind["Classic"] = 1] = "Classic";
+        ModuleResolutionKind[ModuleResolutionKind["NodeJs"] = 2] = "NodeJs";
+    })(ModuleResolutionKind = ts.ModuleResolutionKind || 
(ts.ModuleResolutionKind = {}));
+    var ModuleKind;
+    (function (ModuleKind) {
+        ModuleKind[ModuleKind["None"] = 0] = "None";
+        ModuleKind[ModuleKind["CommonJS"] = 1] = "CommonJS";
+        ModuleKind[ModuleKind["AMD"] = 2] = "AMD";
+        ModuleKind[ModuleKind["UMD"] = 3] = "UMD";
+        ModuleKind[ModuleKind["System"] = 4] = "System";
+        ModuleKind[ModuleKind["ES2015"] = 5] = "ES2015";
+        ModuleKind[ModuleKind["ESNext"] = 6] = "ESNext";
+    })(ModuleKind = ts.ModuleKind || (ts.ModuleKind = {}));
+    var JsxEmit;
+    (function (JsxEmit) {
+        JsxEmit[JsxEmit["None"] = 0] = "None";
+        JsxEmit[JsxEmit["Preserve"] = 1] = "Preserve";
+        JsxEmit[JsxEmit["React"] = 2] = "React";
+        JsxEmit[JsxEmit["ReactNative"] = 3] = "ReactNative";
+    })(JsxEmit = ts.JsxEmit || (ts.JsxEmit = {}));
+    var NewLineKind;
+    (function (NewLineKind) {
+        NewLineKind[NewLineKind["CarriageReturnLineFeed"] = 0] = 
"CarriageReturnLineFeed";
+        NewLineKind[NewLineKind["LineFeed"] = 1] = "LineFeed";
+    })(NewLineKind = ts.NewLineKind || (ts.NewLineKind = {}));
+    var ScriptKind;
+    (function (ScriptKind) {
+        ScriptKind[ScriptKind["Unknown"] = 0] = "Unknown";
+        ScriptKind[ScriptKind["JS"] = 1] = "JS";
+        ScriptKind[ScriptKind["JSX"] = 2] = "JSX";
+        ScriptKind[ScriptKind["TS"] = 3] = "TS";
+        ScriptKind[ScriptKind["TSX"] = 4] = "TSX";
+        ScriptKind[ScriptKind["External"] = 5] = "External";
+        ScriptKind[ScriptKind["JSON"] = 6] = "JSON";
+    })(ScriptKind = ts.ScriptKind || (ts.ScriptKind = {}));
+    var ScriptTarget;
+    (function (ScriptTarget) {
+        ScriptTarget[ScriptTarget["ES3"] = 0] = "ES3";
+        ScriptTarget[ScriptTarget["ES5"] = 1] = "ES5";
+        ScriptTarget[ScriptTarget["ES2015"] = 2] = "ES2015";
+        ScriptTarget[ScriptTarget["ES2016"] = 3] = "ES2016";
+        ScriptTarget[ScriptTarget["ES2017"] = 4] = "ES2017";
+        ScriptTarget[ScriptTarget["ESNext"] = 5] = "ESNext";
+        ScriptTarget[ScriptTarget["Latest"] = 5] = "Latest";
+    })(ScriptTarget = ts.ScriptTarget || (ts.ScriptTarget = {}));
+    var LanguageVariant;
+    (function (LanguageVariant) {
+        LanguageVariant[LanguageVariant["Standard"] = 0] = "Standard";
+        LanguageVariant[LanguageVariant["JSX"] = 1] = "JSX";
+    })(LanguageVariant = ts.LanguageVariant || (ts.LanguageVariant = {}));
+    /* @internal */
+    var DiagnosticStyle;
+    (function (DiagnosticStyle) {
+        DiagnosticStyle[DiagnosticStyle["Simple"] = 0] = "Simple";
+        DiagnosticStyle[DiagnosticStyle["Pretty"] = 1] = "Pretty";
+    })(DiagnosticStyle = ts.DiagnosticStyle || (ts.DiagnosticStyle = {}));
+    var WatchDirectoryFlags;
+    (function (WatchDirectoryFlags) {
+        WatchDirectoryFlags[WatchDirectoryFlags["None"] = 0] = "None";
+        WatchDirectoryFlags[WatchDirectoryFlags["Recursive"] = 1] = 
"Recursive";
+    })(WatchDirectoryFlags = ts.WatchDirectoryFlags || (ts.WatchDirectoryFlags 
= {}));
+    /* @internal */
+    var CharacterCodes;
+    (function (CharacterCodes) {
+        CharacterCodes[CharacterCodes["nullCharacter"] = 0] = "nullCharacter";
+        CharacterCodes[CharacterCodes["maxAsciiCharacter"] = 127] = 
"maxAsciiCharacter";
+        CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed";
+        CharacterCodes[CharacterCodes["carriageReturn"] = 13] = 
"carriageReturn";
+        CharacterCodes[CharacterCodes["lineSeparator"] = 8232] = 
"lineSeparator";
+        CharacterCodes[CharacterCodes["paragraphSeparator"] = 8233] = 
"paragraphSeparator";
+        CharacterCodes[CharacterCodes["nextLine"] = 133] = "nextLine";
+        // Unicode 3.0 space characters
+        CharacterCodes[CharacterCodes["space"] = 32] = "space";
+        CharacterCodes[CharacterCodes["nonBreakingSpace"] = 160] = 
"nonBreakingSpace";
+        CharacterCodes[CharacterCodes["enQuad"] = 8192] = "enQuad";
+        CharacterCodes[CharacterCodes["emQuad"] = 8193] = "emQuad";
+        CharacterCodes[CharacterCodes["enSpace"] = 8194] = "enSpace";
+        CharacterCodes[CharacterCodes["emSpace"] = 8195] = "emSpace";
+        CharacterCodes[CharacterCodes["threePerEmSpace"] = 8196] = 
"threePerEmSpace";
+        CharacterCodes[CharacterCodes["fourPerEmSpace"] = 8197] = 
"fourPerEmSpace";
+        CharacterCodes[CharacterCodes["sixPerEmSpace"] = 8198] = 
"sixPerEmSpace";
+        CharacterCodes[CharacterCodes["figureSpace"] = 8199] = "figureSpace";
+        CharacterCodes[CharacterCodes["punctuationSpace"] = 8200] = 
"punctuationSpace";
+        CharacterCodes[CharacterCodes["thinSpace"] = 8201] = "thinSpace";
+        CharacterCodes[CharacterCodes["hairSpace"] = 8202] = "hairSpace";
+        CharacterCodes[CharacterCodes["zeroWidthSpace"] = 8203] = 
"zeroWidthSpace";
+        CharacterCodes[CharacterCodes["narrowNoBreakSpace"] = 8239] = 
"narrowNoBreakSpace";
+        CharacterCodes[CharacterCodes["ideographicSpace"] = 12288] = 
"ideographicSpace";
+        CharacterCodes[CharacterCodes["mathematicalSpace"] = 8287] = 
"mathematicalSpace";
+        CharacterCodes[CharacterCodes["ogham"] = 5760] = "ogham";
+        CharacterCodes[CharacterCodes["_"] = 95] = "_";
+        CharacterCodes[CharacterCodes["$"] = 36] = "$";
+        CharacterCodes[CharacterCodes["_0"] = 48] = "_0";
+        CharacterCodes[CharacterCodes["_1"] = 49] = "_1";
+        CharacterCodes[CharacterCodes["_2"] = 50] = "_2";
+        CharacterCodes[CharacterCodes["_3"] = 51] = "_3";
+        CharacterCodes[CharacterCodes["_4"] = 52] = "_4";
+        CharacterCodes[CharacterCodes["_5"] = 53] = "_5";
+        CharacterCodes[CharacterCodes["_6"] = 54] = "_6";
+        CharacterCodes[CharacterCodes["_7"] = 55] = "_7";
+        CharacterCodes[CharacterCodes["_8"] = 56] = "_8";
+        CharacterCodes[CharacterCodes["_9"] = 57] = "_9";
+        CharacterCodes[CharacterCodes["a"] = 97] = "a";
+        CharacterCodes[CharacterCodes["b"] = 98] = "b";
+        CharacterCodes[CharacterCodes["c"] = 99] = "c";
+        CharacterCodes[CharacterCodes["d"] = 100] = "d";
+        CharacterCodes[CharacterCodes["e"] = 101] = "e";
+        CharacterCodes[CharacterCodes["f"] = 102] = "f";
+        CharacterCodes[CharacterCodes["g"] = 103] = "g";
+        CharacterCodes[CharacterCodes["h"] = 104] = "h";
+        CharacterCodes[CharacterCodes["i"] = 105] = "i";
+        CharacterCodes[CharacterCodes["j"] = 106] = "j";
+        CharacterCodes[CharacterCodes["k"] = 107] = "k";
+        CharacterCodes[CharacterCodes["l"] = 108] = "l";
+        CharacterCodes[CharacterCodes["m"] = 109] = "m";
+        CharacterCodes[CharacterCodes["n"] = 110] = "n";
+        CharacterCodes[CharacterCodes["o"] = 111] = "o";
+        CharacterCodes[CharacterCodes["p"] = 112] = "p";
+        CharacterCodes[CharacterCodes["q"] = 113] = "q";
+        CharacterCodes[CharacterCodes["r"] = 114] = "r";
+        CharacterCodes[CharacterCodes["s"] = 115] = "s";
+        CharacterCodes[CharacterCodes["t"] = 116] = "t";
+        CharacterCodes[CharacterCodes["u"] = 117] = "u";
+        CharacterCodes[CharacterCodes["v"] = 118] = "v";
+        CharacterCodes[CharacterCodes["w"] = 119] = "w";
+        CharacterCodes[CharacterCodes["x"] = 120] = "x";
+        CharacterCodes[CharacterCodes["y"] = 121] = "y";
+        CharacterCodes[CharacterCodes["z"] = 122] = "z";
+        CharacterCodes[CharacterCodes["A"] = 65] = "A";
+        CharacterCodes[CharacterCodes["B"] = 66] = "B";
+        CharacterCodes[CharacterCodes["C"] = 67] = "C";
+        CharacterCodes[CharacterCodes["D"] = 68] = "D";
+        CharacterCodes[CharacterCodes["E"] = 69] = "E";
+        CharacterCodes[CharacterCodes["F"] = 70] = "F";
+        CharacterCodes[CharacterCodes["G"] = 71] = "G";
+        CharacterCodes[CharacterCodes["H"] = 72] = "H";
+        CharacterCodes[CharacterCodes["I"] = 73] = "I";
+        CharacterCodes[CharacterCodes["J"] = 74] = "J";
+        CharacterCodes[CharacterCodes["K"] = 75] = "K";
+        CharacterCodes[CharacterCodes["L"] = 76] = "L";
+        CharacterCodes[CharacterCodes["M"] = 77] = "M";
+        CharacterCodes[CharacterCodes["N"] = 78] = "N";
+        CharacterCodes[CharacterCodes["O"] = 79] = "O";
+        CharacterCodes[CharacterCodes["P"] = 80] = "P";
+        CharacterCodes[CharacterCodes["Q"] = 81] = "Q";
+        CharacterCodes[CharacterCodes["R"] = 82] = "R";
+        CharacterCodes[CharacterCodes["S"] = 83] = "S";
+        CharacterCodes[CharacterCodes["T"] = 84] = "T";
+        CharacterCodes[CharacterCodes["U"] = 85] = "U";
+        CharacterCodes[CharacterCodes["V"] = 86] = "V";
+        CharacterCodes[CharacterCodes["W"] = 87] = "W";
+        CharacterCodes[CharacterCodes["X"] = 88] = "X";
+        CharacterCodes[CharacterCodes["Y"] = 89] = "Y";
+        CharacterCodes[CharacterCodes["Z"] = 90] = "Z";
+        CharacterCodes[CharacterCodes["ampersand"] = 38] = "ampersand";
+        CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk";
+        CharacterCodes[CharacterCodes["at"] = 64] = "at";
+        CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash";
+        CharacterCodes[CharacterCodes["backtick"] = 96] = "backtick";
+        CharacterCodes[CharacterCodes["bar"] = 124] = "bar";
+        CharacterCodes[CharacterCodes["caret"] = 94] = "caret";
+        CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace";
+        CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket";
+        CharacterCodes[CharacterCodes["closeParen"] = 41] = "closeParen";
+        CharacterCodes[CharacterCodes["colon"] = 58] = "colon";
+        CharacterCodes[CharacterCodes["comma"] = 44] = "comma";
+        CharacterCodes[CharacterCodes["dot"] = 46] = "dot";
+        CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote";
+        CharacterCodes[CharacterCodes["equals"] = 61] = "equals";
+        CharacterCodes[CharacterCodes["exclamation"] = 33] = "exclamation";
+        CharacterCodes[CharacterCodes["greaterThan"] = 62] = "greaterThan";
+        CharacterCodes[CharacterCodes["hash"] = 35] = "hash";
+        CharacterCodes[CharacterCodes["lessThan"] = 60] = "lessThan";
+        CharacterCodes[CharacterCodes["minus"] = 45] = "minus";
+        CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace";
+        CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket";
+        CharacterCodes[CharacterCodes["openParen"] = 40] = "openParen";
+        CharacterCodes[CharacterCodes["percent"] = 37] = "percent";
+        CharacterCodes[CharacterCodes["plus"] = 43] = "plus";
+        CharacterCodes[CharacterCodes["question"] = 63] = "question";
+        CharacterCodes[CharacterCodes["semicolon"] = 59] = "semicolon";
+        CharacterCodes[CharacterCodes["singleQuote"] = 39] = "singleQuote";
+        CharacterCodes[CharacterCodes["slash"] = 47] = "slash";
+        CharacterCodes[CharacterCodes["tilde"] = 126] = "tilde";
+        CharacterCodes[CharacterCodes["backspace"] = 8] = "backspace";
+        CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed";
+        CharacterCodes[CharacterCodes["byteOrderMark"] = 65279] = 
"byteOrderMark";
+        CharacterCodes[CharacterCodes["tab"] = 9] = "tab";
+        CharacterCodes[CharacterCodes["verticalTab"] = 11] = "verticalTab";
+    })(CharacterCodes = ts.CharacterCodes || (ts.CharacterCodes = {}));
+    var Extension;
+    (function (Extension) {
+        Extension["Ts"] = ".ts";
+        Extension["Tsx"] = ".tsx";
+        Extension["Dts"] = ".d.ts";
+        Extension["Js"] = ".js";
+        Extension["Jsx"] = ".jsx";
+        Extension["Json"] = ".json";
+    })(Extension = ts.Extension || (ts.Extension = {}));
+    /* @internal */
+    var TransformFlags;
+    (function (TransformFlags) {
+        TransformFlags[TransformFlags["None"] = 0] = "None";
+        // Facts
+        // - Flags used to indicate that a node or subtree contains syntax 
that requires transformation.
+        TransformFlags[TransformFlags["TypeScript"] = 1] = "TypeScript";
+        TransformFlags[TransformFlags["ContainsTypeScript"] = 2] = 
"ContainsTypeScript";
+        TransformFlags[TransformFlags["ContainsJsx"] = 4] = "ContainsJsx";
+        TransformFlags[TransformFlags["ContainsESNext"] = 8] = 
"ContainsESNext";
+        TransformFlags[TransformFlags["ContainsES2017"] = 16] = 
"ContainsES2017";
+        TransformFlags[TransformFlags["ContainsES2016"] = 32] = 
"ContainsES2016";
+        TransformFlags[TransformFlags["ES2015"] = 64] = "ES2015";
+        TransformFlags[TransformFlags["ContainsES2015"] = 128] = 
"ContainsES2015";
+        TransformFlags[TransformFlags["Generator"] = 256] = "Generator";
+        TransformFlags[TransformFlags["ContainsGenerator"] = 512] = 
"ContainsGenerator";
+        TransformFlags[TransformFlags["DestructuringAssignment"] = 1024] = 
"DestructuringAssignment";
+        TransformFlags[TransformFlags["ContainsDestructuringAssignment"] = 
2048] = "ContainsDestructuringAssignment";
+        // Markers
+        // - Flags used to indicate that a subtree contains a specific 
transformation.
+        TransformFlags[TransformFlags["ContainsDecorators"] = 4096] = 
"ContainsDecorators";
+        TransformFlags[TransformFlags["ContainsPropertyInitializer"] = 8192] = 
"ContainsPropertyInitializer";
+        TransformFlags[TransformFlags["ContainsLexicalThis"] = 16384] = 
"ContainsLexicalThis";
+        TransformFlags[TransformFlags["ContainsCapturedLexicalThis"] = 32768] 
= "ContainsCapturedLexicalThis";
+        
TransformFlags[TransformFlags["ContainsLexicalThisInComputedPropertyName"] = 
65536] = "ContainsLexicalThisInComputedPropertyName";
+        TransformFlags[TransformFlags["ContainsDefaultValueAssignments"] = 
131072] = "ContainsDefaultValueAssignments";
+        TransformFlags[TransformFlags["ContainsParameterPropertyAssignments"] 
= 262144] = "ContainsParameterPropertyAssignments";
+        TransformFlags[TransformFlags["ContainsSpread"] = 524288] = 
"ContainsSpread";
+        TransformFlags[TransformFlags["ContainsObjectSpread"] = 1048576] = 
"ContainsObjectSpread";
+        TransformFlags[TransformFlags["ContainsRest"] = 524288] = 
"ContainsRest";
+        TransformFlags[TransformFlags["ContainsObjectRest"] = 1048576] = 
"ContainsObjectRest";
+        TransformFlags[TransformFlags["ContainsComputedPropertyName"] = 
2097152] = "ContainsComputedPropertyName";
+        TransformFlags[TransformFlags["ContainsBlockScopedBinding"] = 4194304] 
= "ContainsBlockScopedBinding";
+        TransformFlags[TransformFlags["ContainsBindingPattern"] = 8388608] = 
"ContainsBindingPattern";
+        TransformFlags[TransformFlags["ContainsYield"] = 16777216] = 
"ContainsYield";
+        
TransformFlags[TransformFlags["ContainsHoistedDeclarationOrCompletion"] = 
33554432] = "ContainsHoistedDeclarationOrCompletion";
+        TransformFlags[TransformFlags["ContainsDynamicImport"] = 67108864] = 
"ContainsDynamicImport";
+        // Please leave this as 1 << 29.
+        // It is the maximum bit we can set before we outgrow the size of a v8 
small integer (SMI) on an x86 system.
+        // It is a good reminder of how much room we have left
+        TransformFlags[TransformFlags["HasComputedFlags"] = 536870912] = 
"HasComputedFlags";
+        // Assertions
+        // - Bitmasks that are used to assert facts about the syntax of a node 
and its subtree.
+        TransformFlags[TransformFlags["AssertTypeScript"] = 3] = 
"AssertTypeScript";
+        TransformFlags[TransformFlags["AssertJsx"] = 4] = "AssertJsx";
+        TransformFlags[TransformFlags["AssertESNext"] = 8] = "AssertESNext";
+        TransformFlags[TransformFlags["AssertES2017"] = 16] = "AssertES2017";
+        TransformFlags[TransformFlags["AssertES2016"] = 32] = "AssertES2016";
+        TransformFlags[TransformFlags["AssertES2015"] = 192] = "AssertES2015";
+        TransformFlags[TransformFlags["AssertGenerator"] = 768] = 
"AssertGenerator";
+        TransformFlags[TransformFlags["AssertDestructuringAssignment"] = 3072] 
= "AssertDestructuringAssignment";
+        // Scope Exclusions
+        // - Bitmasks that exclude flags from propagating out of a specific 
context
+        //   into the subtree flags of their container.
+        TransformFlags[TransformFlags["NodeExcludes"] = 536872257] = 
"NodeExcludes";
+        TransformFlags[TransformFlags["ArrowFunctionExcludes"] = 601249089] = 
"ArrowFunctionExcludes";
+        TransformFlags[TransformFlags["FunctionExcludes"] = 601281857] = 
"FunctionExcludes";
+        TransformFlags[TransformFlags["ConstructorExcludes"] = 601015617] = 
"ConstructorExcludes";
+        TransformFlags[TransformFlags["MethodOrAccessorExcludes"] = 601015617] 
= "MethodOrAccessorExcludes";
+        TransformFlags[TransformFlags["ClassExcludes"] = 539358529] = 
"ClassExcludes";
+        TransformFlags[TransformFlags["ModuleExcludes"] = 574674241] = 
"ModuleExcludes";
+        TransformFlags[TransformFlags["TypeExcludes"] = -3] = "TypeExcludes";
+        TransformFlags[TransformFlags["ObjectLiteralExcludes"] = 540087617] = 
"ObjectLiteralExcludes";
+        TransformFlags[TransformFlags["ArrayLiteralOrCallOrNewExcludes"] = 
537396545] = "ArrayLiteralOrCallOrNewExcludes";
+        TransformFlags[TransformFlags["VariableDeclarationListExcludes"] = 
546309441] = "VariableDeclarationListExcludes";
+        TransformFlags[TransformFlags["ParameterExcludes"] = 536872257] = 
"ParameterExcludes";
+        TransformFlags[TransformFlags["CatchClauseExcludes"] = 537920833] = 
"CatchClauseExcludes";
+        TransformFlags[TransformFlags["BindingPatternExcludes"] = 537396545] = 
"BindingPatternExcludes";
+        // Masks
+        // - Additional bitmasks
+        TransformFlags[TransformFlags["TypeScriptClassSyntaxMask"] = 274432] = 
"TypeScriptClassSyntaxMask";
+        TransformFlags[TransformFlags["ES2015FunctionSyntaxMask"] = 163840] = 
"ES2015FunctionSyntaxMask";
+    })(TransformFlags = ts.TransformFlags || (ts.TransformFlags = {}));
+    var EmitFlags;
+    (function (EmitFlags) {
+        EmitFlags[EmitFlags["SingleLine"] = 1] = "SingleLine";
+        EmitFlags[EmitFlags["AdviseOnEmitNode"] = 2] = "AdviseOnEmitNode";
+        EmitFlags[EmitFlags["NoSubstitution"] = 4] = "NoSubstitution";
+        EmitFlags[EmitFlags["CapturesThis"] = 8] = "CapturesThis";
+        EmitFlags[EmitFlags["NoLeadingSourceMap"] = 16] = "NoLeadingSourceMap";
+        EmitFlags[EmitFlags["NoTrailingSourceMap"] = 32] = 
"NoTrailingSourceMap";
+        EmitFlags[EmitFlags["NoSourceMap"] = 48] = "NoSourceMap";
+        EmitFlags[EmitFlags["NoNestedSourceMaps"] = 64] = "NoNestedSourceMaps";
+        EmitFlags[EmitFlags["NoTokenLeadingSourceMaps"] = 128] = 
"NoTokenLeadingSourceMaps";
+        EmitFlags[EmitFlags["NoTokenTrailingSourceMaps"] = 256] = 
"NoTokenTrailingSourceMaps";
+        EmitFlags[EmitFlags["NoTokenSourceMaps"] = 384] = "NoTokenSourceMaps";
+        EmitFlags[EmitFlags["NoLeadingComments"] = 512] = "NoLeadingComments";
+        EmitFlags[EmitFlags["NoTrailingComments"] = 1024] = 
"NoTrailingComments";
+        EmitFlags[EmitFlags["NoComments"] = 1536] = "NoComments";
+        EmitFlags[EmitFlags["NoNestedComments"] = 2048] = "NoNestedComments";
+        EmitFlags[EmitFlags["HelperName"] = 4096] = "HelperName";
+        EmitFlags[EmitFlags["ExportName"] = 8192] = "ExportName";
+        EmitFlags[EmitFlags["LocalName"] = 16384] = "LocalName";
+        EmitFlags[EmitFlags["InternalName"] = 32768] = "InternalName";
+        EmitFlags[EmitFlags["Indented"] = 65536] = "Indented";
+        EmitFlags[EmitFlags["NoIndentation"] = 131072] = "NoIndentation";
+        EmitFlags[EmitFlags["AsyncFunctionBody"] = 262144] = 
"AsyncFunctionBody";
+        EmitFlags[EmitFlags["ReuseTempVariableScope"] = 524288] = 
"ReuseTempVariableScope";
+        EmitFlags[EmitFlags["CustomPrologue"] = 1048576] = "CustomPrologue";
+        EmitFlags[EmitFlags["NoHoisting"] = 2097152] = "NoHoisting";
+        EmitFlags[EmitFlags["HasEndOfDeclarationMarker"] = 4194304] = 
"HasEndOfDeclarationMarker";
+        EmitFlags[EmitFlags["Iterator"] = 8388608] = "Iterator";
+        EmitFlags[EmitFlags["NoAsciiEscaping"] = 16777216] = "NoAsciiEscaping";
+        /*@internal*/ EmitFlags[EmitFlags["TypeScriptClassWrapper"] = 
33554432] = "TypeScriptClassWrapper";
+    })(EmitFlags = ts.EmitFlags || (ts.EmitFlags = {}));
+    /**
+     * Used by the checker, this enum keeps track of external emit helpers 
that should be type
+     * checked.
+     */
+    /* @internal */
+    var ExternalEmitHelpers;
+    (function (ExternalEmitHelpers) {
+        ExternalEmitHelpers[ExternalEmitHelpers["Extends"] = 1] = "Extends";
+        ExternalEmitHelpers[ExternalEmitHelpers["Assign"] = 2] = "Assign";
+        ExternalEmitHelpers[ExternalEmitHelpers["Rest"] = 4] = "Rest";
+        ExternalEmitHelpers[ExternalEmitHelpers["Decorate"] = 8] = "Decorate";
+        ExternalEmitHelpers[ExternalEmitHelpers["Metadata"] = 16] = "Metadata";
+        ExternalEmitHelpers[ExternalEmitHelpers["Param"] = 32] = "Param";
+        ExternalEmitHelpers[ExternalEmitHelpers["Awaiter"] = 64] = "Awaiter";
+        ExternalEmitHelpers[ExternalEmitHelpers["Generator"] = 128] = 
"Generator";
+        ExternalEmitHelpers[ExternalEmitHelpers["Values"] = 256] = "Values";
+        ExternalEmitHelpers[ExternalEmitHelpers["Read"] = 512] = "Read";
+        ExternalEmitHelpers[ExternalEmitHelpers["Spread"] = 1024] = "Spread";
+        ExternalEmitHelpers[ExternalEmitHelpers["Await"] = 2048] = "Await";
+        ExternalEmitHelpers[ExternalEmitHelpers["AsyncGenerator"] = 4096] = 
"AsyncGenerator";
+        ExternalEmitHelpers[ExternalEmitHelpers["AsyncDelegator"] = 8192] = 
"AsyncDelegator";
+        ExternalEmitHelpers[ExternalEmitHelpers["AsyncValues"] = 16384] = 
"AsyncValues";
+        ExternalEmitHelpers[ExternalEmitHelpers["ExportStar"] = 32768] = 
"ExportStar";
+        ExternalEmitHelpers[ExternalEmitHelpers["MakeTemplateObject"] = 65536] 
= "MakeTemplateObject";
+        ExternalEmitHelpers[ExternalEmitHelpers["FirstEmitHelper"] = 1] = 
"FirstEmitHelper";
+        ExternalEmitHelpers[ExternalEmitHelpers["LastEmitHelper"] = 65536] = 
"LastEmitHelper";
+        // Helpers included by ES2015 for..of
+        ExternalEmitHelpers[ExternalEmitHelpers["ForOfIncludes"] = 256] = 
"ForOfIncludes";
+        // Helpers included by ES2017 for..await..of
+        ExternalEmitHelpers[ExternalEmitHelpers["ForAwaitOfIncludes"] = 16384] 
= "ForAwaitOfIncludes";
+        // Helpers included by ES2017 async generators
+        ExternalEmitHelpers[ExternalEmitHelpers["AsyncGeneratorIncludes"] = 
6144] = "AsyncGeneratorIncludes";
+        // Helpers included by yield* in ES2017 async generators
+        ExternalEmitHelpers[ExternalEmitHelpers["AsyncDelegatorIncludes"] = 
26624] = "AsyncDelegatorIncludes";
+        // Helpers included by ES2015 spread
+        ExternalEmitHelpers[ExternalEmitHelpers["SpreadIncludes"] = 1536] = 
"SpreadIncludes";
+    })(ExternalEmitHelpers = ts.ExternalEmitHelpers || (ts.ExternalEmitHelpers 
= {}));
+    var EmitHint;
+    (function (EmitHint) {
+        EmitHint[EmitHint["SourceFile"] = 0] = "SourceFile";
+        EmitHint[EmitHint["Expression"] = 1] = "Expression";
+        EmitHint[EmitHint["IdentifierName"] = 2] = "IdentifierName";
+        EmitHint[EmitHint["MappedTypeParameter"] = 3] = "MappedTypeParameter";
+        EmitHint[EmitHint["Unspecified"] = 4] = "Unspecified";
+    })(EmitHint = ts.EmitHint || (ts.EmitHint = {}));
+})(ts || (ts = {}));
+/*@internal*/
+var ts;
+(function (ts) {
+    /** Gets a timestamp with (at least) ms resolution */
+    ts.timestamp = typeof performance !== "undefined" && performance.now ? 
function () { return performance.now(); } : Date.now ? Date.now : function () { 
return +(new Date()); };
+})(ts || (ts = {}));
+/*@internal*/
+/** Performance measurements for the compiler. */
+(function (ts) {
+    var performance;
+    (function (performance) {
+        var profilerEvent = typeof onProfilerEvent === "function" && 
onProfilerEvent.profiler === true
+            ? onProfilerEvent
+            : function (_markName) { };
+        var enabled = false;
+        var profilerStart = 0;
+        var counts;
+        var marks;
+        var measures;
+        /**
+         * Marks a performance event.
+         *
+         * @param markName The name of the mark.
+         */
+        function mark(markName) {
+            if (enabled) {
+                marks.set(markName, ts.timestamp());
+                counts.set(markName, (counts.get(markName) || 0) + 1);
+                profilerEvent(markName);
+            }
+        }
+        performance.mark = mark;
+        /**
+         * Adds a performance measurement with the specified name.
+         *
+         * @param measureName The name of the performance measurement.
+         * @param startMarkName The name of the starting mark. If not 
supplied, the point at w

<TRUNCATED>

Reply via email to